Python from __future__ import 介绍与举例说明
常常出现在代码的最开始的位置, 用于将python新版本的特性引入到当前版本中,使得当前版本也可以使用新版本的一些功能
例子
-
from __future__ import print_function
引入 新版本的print;
如果新版本的print和当前版本的写法不一致,那么引入后旧版本(当前版本)的写法就不能使用了。
比如 python 3.x 的print写法为
print("hello world")
在python 2.x的环境中,引入from __future__ import print_function后,原来的写法
print "Hello World"
就会报错 -> SyntaxError: invalid syntax
-
from __future__ import absolute_import
引入绝对引用;
绝对引用:在导入模块的时,假设在当前项目目录下包含相同的模块,则优先导入标准库中的同名模块,也就是说如果当前目录有个time模块,import time导入的仍然是Python官方的time标准库,而非项目中自定义的time模块。
相对引用:从当前项目中寻找需要导入的包或函数。
exp:
假如目前的目录结构为:
└── project ├── package1 │ ├── module1.py │ └── module2.py └── package2 ├── __init__.py ├── module3.py ├── module4.py └── subpackage1 └── module5.py
且存在以下内容:
package1/module2.py有一个函数,叫function1 package2/subpackage1/module5.py有一个函数,叫function2
绝对引用:
此时各个文件都是位于project这个顶级包目录下的(必须位于)
exp:
## 文件位于package2包下时 ## from package1 import module1 from package1.module2 import function1 ## 文件位于package1包下时 ## from package2.subpackage1.module5 import function2
相对引用:
相对引用的位置 取决于当前的位置和被导入模块、包以及对象的位置。
exp:
## 文件位于module1 ## from .module2 import function1 from ..package2 import module3 from ..package2.subpackage1.module5 import function2
-
from __future__ import division
引入精准除法;
python 2.x 中的除法 “ / ” 是截断除法,结果不显示小数
exp:
print(3/2) >> 1
在原有的python 2.x的环境中,引入from __future__ import division后,exp:
print(3/2) >> 1.5
若在导入新版本的除法特性后,还要执行截断除法,可以使用“ // ”操作符
exp:
print(3//2) >> 1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现