Python-__future__ 语法特性
__future__
语句是 python2 的概念,那么 python3 对于 python2 就是 future 了,用于在 python2 环境下使用 python3 的语句,场景可能是从 python2 向 python3 切换的过程中将局部语句通过这个方式进行切换。
division
想要在 Python 2.x 的中直接使用 Python 3.x 的除法,可以通过 __future__
模块的 division
实现
- py2.x: 地板除
- 如果是整数相除,结果仍是整数,余数会被扔掉:
10 / 3 = 3
- 如果想要保留小数,要先转化为浮点型:
10.0 / 3 = 3.3333333333333335
- 如果是整数相除,结果仍是整数,余数会被扔掉:
- py3.x: 标准除法
10.0 / 3 = 3.3333333333333335
- 通过
//
使用地板除:10 // 3 = 3
absolute_import
绝对引入,找顶层包名的模块。
pkg
|-- init.py
|-- main.py
|-- string.py
- py 2.x: 如果想要在 pkg 文件夹中引用
string
模块,可以使用import string
.他的逻辑是从当前文件夹一层一层往上找直到找到模块.如果此时先要导入标准库中的模块,要使用from __future__ import absolute_import
- py 3.x:
import string
会直接导入标准库的,如果想使用 pkg 下面的string.py
则要使用from pkg import string
print_function
使用 python3 的 print
函数
# py2 环境
from __future__ import print_function # 导入之后 print 就是 python3 中的 print 函数
print('you are good') # 这个能运行
print 'you are good' # 这个会报错
unicode_literals
为了适应 Python 3.x 的新的字符串的表示方法,在 2.7 版本的代码中,可以通过 __future__.unicode_literals
来使用 Python 3.x 的新的语法
- py 2.x:
'xxx'
表示 str,u'xxx'
表示 unicode - py 3.x: 所有字符串都被视为 unicode, 因此写
u'xxx'
和'xxx'
是完全一致的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
下一篇: Covenant 利用分析
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论