本文章转载自:https://www.cnblogs.com/ksedz/p/3190208.html
作用
future__模块提供某些将要引入的特性
2.7.5的__future

基本上是python3中的特性
有以下内容

In [1]: import __future__In [2]: __future__.
__future__.CO_FUTURE_ABSOLUTE_IMPORT  __future__.all_feature_names
__future__.CO_FUTURE_DIVISION         __future__.division
__future__.CO_FUTURE_PRINT_FUNCTION   __future__.generators
__future__.CO_FUTURE_UNICODE_LITERALS __future__.nested_scopes
__future__.CO_FUTURE_WITH_STATEMENT   __future__.print_function
__future__.CO_GENERATOR_ALLOWED       __future__.unicode_literals
__future__.CO_NESTED                  __future__.with_statement
__future__.absolute_importIn [2]: __future__.

可导入的功能有哪些?

In [3]: import __future__In [4]: __future__.all_feature_names
Out[4]:
['nested_scopes','generators','division','absolute_import','with_statement','print_function','unicode_literals']

对应功能如下:
[1] division 新的除法特性,本来的除号/对于分子分母是整数的情况会取整,但新特性中在此情况下的除法不会取整,取整的使用//。如下可见,只有分子分母都是整数时结果不同。

In [1]: 3 / 5
Out[1]: 0In [2]: 3 // 5
Out[2]: 0In [3]: 3.0 / 5.0
Out[3]: 0.6In [4]: 3.0 // 5.0
Out[4]: 0.0In [5]: from __future__ import divisionIn [6]: 3 / 5
Out[6]: 0.6In [7]: 3 // 5
Out[7]: 0In [8]: 3.0 / 5.0
Out[8]: 0.6In [9]: 3.0 // 5.0
Out[9]: 0.0

[2] print_function 新的print是一个函数,如果导入此特性,之前的print语句就不能用了。在python2.x中print函数无需括号,但在python3.x中需要括号;在代码中导入print_function后,再写print必须加括号。

In [1]: print 'test __future__'
test __future__In [2]: from __future__ import print_functionIn [3]: print('test')
testIn [4]: print 'test'File "<ipython-input-4-ed4b06bfff9f>", line 1print 'test'^
SyntaxError: invalid syntax

[3] unicode_literals 这个是对字符串使用unicode字符。

In [1]: print '目录'
鐩綍In [2]: from __future__ import unicode_literalsIn [3]: print '目录'
目录

[4] absolute_import 这个没有搞懂,如果我当前目录有一个sys.py,我用的时候总是会调用系统的sys。如果当前目录和sys.path的路径中都有一个foo,则都会调用当前目录下的foo。另外,我运行的方式都是 python filename.py的方式,而如果使用python -c "import filename"则又是另一种答案。这个问题还没有解决,搜到的最详细的讨论见http://bytes.com/topic/python/answers/596703-future-import-absolute_import
[5] nested_scopes 这个是修改嵌套函数或lambda函数中变量的搜索顺序,从当前函数命名空间->模块命名空间的顺序更改为了当前函数命名空间->父函数命名空间->模块命名空间,python2.7.5中默认使用
[6] generators 生成器,对应yield的语法,python2.7.5中默认使用
[7] with_statement 是使用with关键字,python2.7.5是默认使用
运用
首先是可以做个性化的用法,比如你喜欢用print()而不是print
更重要的是基本用以下几句就可以让python2和python3有良好的兼容性了

from __future__ import print_function
from __future__ import unicode_literals
from __future__ import division
from __future__ import absolute_import

python中的__future__模块相关推荐

  1. 介绍Python中的__future__模块

    这篇文章主要介绍了介绍Python中的__future__模块,__future__模块使得在Python2.x的版本下能够兼容更多的Python3.x的特性,需要的朋友可以参考下 Python的每个 ...

  2. python 中的__future__模块

    今天用python发现有代码impot __future__模块,这个模块的意思其实是在python老的版本中引用新的特性.

  3. 关于python 中的__future__模块

    Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动.有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了. 具体说来就是,某个版本中出现了某个 ...

  4. python中的logging记录日志_[ Python入门教程 ] Python中日志记录模块logging使用实例...

    python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...

  5. python使用教程cmd啥意思-Python 中的cmd模块学习

    Python中的cmd模块类型提供了一个创建命令行解析器的框架.简单的来说,可以继承Cmd来创建命令行界面,然后对所有想处理的命令command执行do_command方法.默认情况下,它使用read ...

  6. python中的绘图模块turtle的使用

    python中的绘图模块turtle的使用(7-20190125) 文章目录: 还是从一个有趣的小应用开始,turtle的骚操作吧 最近小猪配齐比较流行,下面用turtle绘制一个粉红色的小猪猪吧-- ...

  7. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...

    本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...

  8. Python中的random模块

    Python中的random模块用于随机数生成,对几个random模块中的函数进行简单介绍.如下: random.random() 用于生成一个0到1的随机浮点数.如: import random r ...

  9. python中的log模块笔记

    日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日志输出中添 ...

最新文章

  1. 云监控服务产品优势与应用场景
  2. python3 正则表达式 嵌套表格_在Python中将嵌套结构与正则表达式匹配
  3. boost::units模块实现异构单元片段
  4. 50行代码串行Promise,koa洋葱模型原来这么有趣?
  5. javaweb实训第三天下午——Web基础-Servlet交互JSP原理及运用
  6. Linux中telnet命令
  7. 在mac中配置apache+php5.3+mysql的环境,修改hosts
  8. 如何保证Session值不丢失
  9. 90KB的3D游戏(像CS一样)[汇编界又一奇迹]绝对震撼,操作和CS一样!
  10. 基于wifi的物联网技术,主要有哪些优势?
  11. 项目时间和本地时间差8小时的问题
  12. vue的echarts的折线图、柱状图、折线图的使用
  13. tableau高级绘图(十二)-tableau绘制辐射堆叠图
  14. Bootstrap3部分理解
  15. 与卿共赴鸿蒙是什么意思,《山河令》看来周子舒是真的很爱温客行,君心似我心,此生无憾...
  16. 【karle 笔记】无法通过Windows功能控制面板自动安装或卸载Windows Server 角色和功能。
  17. 单个vue组件的打包和动态引入
  18. 点击按钮获取listview网上数据
  19. 给你的web页面添加盲水印,附带检盲水印方案
  20. matlab显示一幅图像

热门文章

  1. (一)卡尔曼滤波算法简介
  2. 数据结构笔记(十)-- 循环队列
  3. 将Rosbag中的Compressed类型的图像转换成raw类型
  4. android菜单更改,Android修改分析:删除设置中菜单
  5. 超级计算机 500,191台超算500强排名分布区间:前百强4台,前两百强31台
  6. oauth2 单点登录_六个高Star开源项目,让你更懂OAuth和单点登录
  7. 郭慧计算机,机械制图及CAD(高等院校网络教育系列教材)
  8. 米家扩展程序初始化超时_一套完整的PLC程序是什么样子
  9. mysql添加序列触发器_在Oracle中创建自增序列之触发器
  10. for循环在c++中的用法_C ++中的循环