Python教程

Python from __future__ import 介绍与举例说明

本文主要是介绍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
    
这篇关于Python from __future__ import 介绍与举例说明的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!