Python-__future__ 语法特性

发布于 2025-01-15 10:11:53 字数 1676 浏览 3 评论 0

__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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

文章
评论
25 人气
更多

推荐作者

IDC-hncloud

文章 0 评论 0

薆情海

文章 0 评论 0

mb_VjXiXQg5

文章 0 评论 0

爱,才寂寞

文章 0 评论 0

BE WATER

文章 0 评论 0

微信用户

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文