设为首页 收藏本站
查看: 999|回复: 0

[经验分享] 【转】Python的未来 future模块

[复制链接]

尚未签到

发表于 2017-4-30 09:46:24 | 显示全部楼层 |阅读模式
原博客地址:http://blog.csdn.net/hide1713/article/details/1764543

简单介绍一下python未来将会支持的一些语言特点 ,虽然Ibm的网站上也有介绍.但是太凌乱了.而且中翻译过后,代码的格式想狗屎一样.

下面简单介绍一下这些特点

nested_scopes: 改变名空间的搜索过程
generators:使用生成器.能够产生能保存当前状态的函数.
division:精确的除法
absolute_import:包含绝对路径.方便include
with_statement:安全的打开文件
想使用这写语言特点, 在文件开头加一句

from __future__ import FeatureName

比如

from __future__ import division

就能用了

下面介绍一下他们

nested_scopes: 改变使用lambda时名空间的搜索过程,按照dive into python中的话说



generators:使用生成器.能够产生能保存当前状态的函数.



注意generator使用yield返回.不是return

下面的generator每次调用都会返回字母表中下一个字母,从a开始,到z结束.

from __future__ import generators

def alphabet():
    n=0
    while n<26:
        char=chr(ord('a')+n)
        n+=1
        yield char  #在这里返回,下次调用时从这里开始


调用方法

gen=alphabet()
for char in gen:
    print char
或者使用gen.next()函数.可以看到,函数内部控制变量n的值被保留下来了

在2.5中generator功能更加丰富,yield可以作为表达式的以部分,使用send方法来改变其的返回时的状态.

具体http://blog.donews.com/limodou/archive/2006/09/04/1028747.aspx

当遍历所有变量以后会引发StopIteration异常



division:精确的除法,同义

>>> 22/7
3
>>> from __future__ import division
>>> 22/7
3.1428571428571428

absolute_import:包含绝对路径.方便include(这里应该是import吧)

很多时候当我们要include上一层目录的文件时,不得不手动使用os来把上层目录加入搜索path.否则include就会找不到文件.使用了这个特性后.绝对路径自动加入了.可以使用绝对路径来

下面是从一封邮件里面摘录的

>> work
>>   |
>>   |- foo.py            # print "foo not in bar"
>>   |
>>   `- bar
>>       |
>>       |- __init__.py
>>       |
>>       |- foo.py        # print "foo in bar"
>>       |
>>       |- absolute.py   # from __futer__ import absolute_import
>>       |                # import foo
>>       |
>>       `- relative.py   # import foo
>>
>>
>> * Where "work" is in the path.
>>
>>
>> (1)
>>
>> C:/work>python -c "import bar.absolute"
>> foo not in bar
>>
>> C:/work>python -c "import bar.relative"
>> foo in bar
>>
>>

with_statement:安全的打开文件

使用with open("file name ") as xx打开文件.这样不用close文件了.python会自动帮我们做这件事.

欢迎提出宝贵意见

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-371078-1-1.html 上篇帖子: Python操作Excel生成HTML table 下篇帖子: Extending and Embedding the Python Interpreter(四)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表