Python的未来 future模块

本文介绍了Python的future模块,包括nested_scopes改变名空间搜索、generators实现状态保存的函数、division提供精确除法、absolute_import引入绝对路径以及with_statement确保安全打开文件等特性。通过在文件开头导入__future__模块的相关特性,开发者可以提前使用这些未来的语言功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单介绍一下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

很多时候当我们要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会自动帮我们做这件事.

欢迎提出宝贵意见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值