`

【转】Python的未来 future模块

 
阅读更多
原博客地址: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会自动帮我们做这件事.

欢迎提出宝贵意见
分享到:
评论

相关推荐

    Python模块future用法原理详解

    Python中的`__future__`模块是Python语言的一个特殊模块,它的主要功能是使得程序员能够在当前版本的Python中引入新版本的特性,从而使得开发者可以在不升级到新版本Python的情况下,提前体验并利用新版本的特性。...

    Python库 | mo-future-1.1.18029.tar.gz

    此外,`__future__`模块在Python 3中用于引入未来语法特性,mo-future库则将其扩展到Python 2,使得开发者可以提前使用Python 3的某些新特性。 总结起来,mo-future库是Python 2到Python 3迁移过程中的重要工具,它...

    python之使用-future-共2页.pdf.zi

    Python中的`__future__`模块是面向Python程序员的一个重要概念,它为Python代码引入了一些未来版本的特性,允许开发者在当前版本的Python中使用即将在新版本中出现的语言功能。这个模块是Python的一个内置模块,它...

    介绍Python中的__future__模块

    随着Python语言的持续发展,了解和使用__future__模块对于每一个Python开发者来说都是非常重要的,它不仅能够帮助我们编写更符合未来发展方向的代码,还可以在新旧版本迭代过程中保持良好的开发实践。

    Python-asyncio一个给Python33使用的asyncio模块从Python34开始asyncio已经被纳入标准库

    Python的asyncio模块是Python异步I/O框架的核心,它为编写并发代码提供了高效且易于使用的工具。在Python 3.3版本中首次引入,asyncio作为第三方库提供,而在Python 3.4及更高版本中,asyncio已经成为Python标准库的...

    future-0.17.1.tar.gz

    《Python未来库(Future)详解及安装指南》 在Python编程中,`future`库是一个不可或缺的工具,它为Python 2和Python 3之间的互操作性提供了强大的支持。`future-0.17.1.tar.gz`是该库的一个版本压缩包,包含了在...

    python中利用Future对象异步返回结果示例代码

    `Future`对象是Python标准库`asyncio`模块中的核心组件,它在异步编程中扮演着关键角色,用于表示一个尚未完成但预计在未来某个时刻会完成的操作。`Future`的主要目标是为异步操作提供一种统一的接口,使得开发者...

    python 消除 futureWarning问题的解决

    在Python编程过程中,`FutureWarning`是一种特定类型的警告,它提示开发者某个功能在未来版本的Python中将被废弃或改变。这种警告的目的是为了让程序员提前适应即将发生的变化,以避免在未来更新时遇到意外的问题。...

    future-0.18.2.tar.gz

    未来(Future)在编程中通常指的是异步计算的概念,特别是在Python中,`concurrent.futures`模块提供了对异步操作的高级接口。这个"future"包可能是一个针对分布式环境的异步计算框架,利用Zookeeper进行任务协调和...

    Python中使用asyncio 封装文件读写

    `asyncio.Future`类似于JavaScript中的`Promise`对象,它是一个表示未来某个时间点会得到结果的对象。通过使用`Future`对象,我们可以避免程序在等待文件读写操作完成时被阻塞,从而实现并发处理。 ##### 非阻塞...

    Python3.6 内置.py模块列表及功能概述.pdf

    1. **__future__**:这个模块定义了未来语句(Future statements),允许开发者在较新的Python版本中使用即将引入的功能,而不会影响向后兼容性。 2. **__main__**:运行顶级脚本的环境,当Python解释器直接执行一...

    python基础教程txt免费-Python基础教程(第2版).pdf

    特别是关于模块的部分,提到了cmath模块用于处理复数,以及如何使用future模块来兼容Python的未来版本。最后,讲解了字符串的处理,如拼接、表示形式、输入/输出函数的比较,以及Unicode支持。 第2章深入到列表和...

    DataX_Python3.zip

    例如,可能需要更新使用了Python2特性的第三方库,如argparse模块在Python3中已经成为标准库。 接下来,重点在于替换bin目录下的Python文件。DataX的执行主要依赖于bin目录下的几个核心脚本,如`datax.py`、`job.py...

    python3.4官方手册

    同时,Python 3.4开始默认开启`division`未来语句,使得整数除法返回浮点数,与Python 3.x的行为保持一致。 在`sys`模块中,`sys.exitfunc`被`atexit`模块取代,提供了一个更灵活的程序退出处理机制。`sys....

    Python通过future处理并发问题

    通过本篇文档的学习,我们了解到Python中使用`concurrent.futures`模块中的`Future`对象处理并发问题的基本方法。通过对具体示例的分析,我们可以看到利用多线程进行并发处理可以显著提高程序的执行效率,尤其是在I/...

    future-0.15.2.tar.gz

    《深入探索future-0.15.2:一个强大的Python未来兼容库》 在Python编程领域,`future`库是一个不可或缺的工具,尤其对于那些需要处理Python 2和Python 3兼容性问题的开发者而言。这个名为`future-0.15.2.tar.gz`的...

    Python 编程\Python 中文手册 v2.4(HTML)

    6. **模块导入优化**:引入了`__future__`模块,使得开发者可以提前使用某些未来版本的语法特性。比如,可以使用`from __future__ import print_function`来启用Python 3的`print`函数语法。 7. **新的内置函数和...

    python官方3.2.1版本msi安装包

    同时,`__future__`模块新增了`unicode_literals`未来导入,使得字符串默认为Unicode类型,以适应日益普及的多语言环境。 Python 3.2.1作为3.2系列的小版本更新,主要关注错误修复和性能提升,确保了其稳定性和兼容...

    Python-2.7.5.tgz for linux

    5. **PEP 384 - 未来导入:** 引入了`from __future__ import`,允许开发者在Python 2中使用部分Python 3的语法特性。 **在Linux上安装Python-2.7.5.tgz的步骤:** 1. **解压文件:** 使用`tar -zxvf Python-2.7.5....

    Python-3.8.11.tgz

    Python 3.8 进一步增强了类型提示系统,现在可以使用 `from __future__ import annotations` 导入未来的注解功能,这允许在类定义中使用未解析的类型注解,避免了导入循环问题。 3. **位置只有元组**: 新增了 `*...

Global site tag (gtag.js) - Google Analytics