计算机的知识太多了,很多东西就是一个使用过程中详细积累的过程。最近遇到了一个很久关于future的问题,踩了坑,这里就做个笔记,免得后续再犯类似错误。

  future的作用:把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。说的通俗一点,就是你不用更新python的版本,直接加这个模块,就可以使用python新版本的功能。 下面我们用几个例子来说明它的用法:

python 2.x print不是一个函数,不能使用help. python3.x print是一个函数,可以使用help.这个时候,就可以看一下future的好处了:

  代码:

  1. # python2
  2. from __future__ import absolute_import, division, print_function
  3.  
  4. #print(3/5)
  5. #print(3.0/5)
  6. #print(3//5)
  7. help(print)

  运行结果:

  1. future git:(master) python future.py
  2. File "future.py", line 8
  3. help(print)
  4. ^
  5. SyntaxError: invalid syntax

  报错了,原因就是python2 不支持这个语法。

  上面只需要把第二行的注释打开:

  1. 1 # python2
  2. 2 from __future__ import absolute_import, division, print_function
  3. 3
  4. 4
  5. 5 #print(3/5)
  6. 6 #print(3.0/5)
  7. 7 #print(3//5)
  8. 8 help(print)

  结果如下,就对了:

  1. Help on built-in function print in module __builtin__:
  2.  
  3. print(...)
  4. print(value, ..., sep=' ', end='\n', file=sys.stdout)
  5.  
  6. Prints the values to a stream, or to sys.stdout by default.
  7. Optional keyword arguments:
  8. file: a file-like object (stream); defaults to the current sys.stdout.
  9. sep: string inserted between values, default a space.
  10. end: string appended after the last value, default a newline.

  另外一个例子:是关于除法的:

  1. # python2
  2. #from __future__ import absolute_import, division, print_function
  3.  
  4. print(3/5)
  5. print(3.0/5)
  6. print(3//5)
  7. #help(print)

  结果:

  1. future git:(master) python future.py
  2. 0
  3. 0.6

  把编译宏打开,运算结果:

  1. future git:(master) python future.py
  2. 0.6
  3. 0.6

 看看,python3.x的语法可以使用了。

 有了这两个例子,估计你对future的用法就清晰了吧。

python的模块future用法实例解析的更多相关文章

  1. python中super的用法实例解析

    概念 super作为python的内建函数.主要作用如下: 允许我们避免使用基类 跟随多重继承来使用 实例 在单个继承的场景下,一般使用super来调用基类来实现: 下面是一个例子: class Ma ...

  2. python之模块py_compile用法(将py文件转换为pyc文件)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件):二进制文件,是由py文件经过编译后 ...

  3. python OptParse模块的用法详解

    OptParse模块的简单介绍 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只能简单处理 命令行参数: 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成 ...

  4. Python多进程并发(multiprocessing)用法实例详解

    http://www.jb51.net/article/67116.htm 本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Pyt ...

  5. python pickle模块的用法

    pickle用于python特有的类型,和python的数据类型间进行转换,提供四个功能 dumps,dump,loads,load. pickle 的用法 #pickle.dumps 将数据通过特殊 ...

  6. Python日志模块logging用法

    1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 ...

  7. C#属性(Attribute)用法实例解析

    属性(Attribute)是C#程序设计中非常重要的一个技术,应用范围广泛,用法灵活多变.本文就以实例形式分析了C#中属性的应用.具体入戏: 一.运用范围 程序集,模块,类型(类,结构,枚举,接口,委 ...

  8. python timeit模块简单用法

    timeit模块提供了一种简便的方法来为Python中的小块代码进行计时. 模块调用函数,stmp为要测试的函数,setup为测试环境,number为运行次数 timeit.timeit(stmt=) ...

  9. C#教程之C#属性(Attribute)用法实例解析

    引用:https://www.xin3721.com/ArticlecSharp/c11686.html 属性(Attribute)是C#程序设计中非常重要的一个技术,应用范围广泛,用法灵活多变.本文 ...

随机推荐

  1. powershell下ssh客户端套件实现

    有时会需要和Linux机器进行交互.所以这时就需要在Powershell中使用SSH. 0x01 查找Powershell中的SSH功能模块 如图,显示没有find-module的命令,需要安装Pac ...

  2. 关于StreamReader的知识分享

    今天我们来简单的介绍一下StreamReader,在将StreamReader之前,我们先来了解一下他的父类:TextReader.对于TextReader,大家可能比较陌生,下面我们来看一下Text ...

  3. spring cloud 优雅停机

    spring cloud 优雅停机 大部分部署项目如果要停掉项目一般都是用kill -9 来杀进程 但是由于Eureka采用心跳的机制来上下线服务,会导致服务消费者调用已经kill的服务提供者然后出错 ...

  4. python类的__repr__方法

    python3中的类默认是新式类(继承object类). __repr__()是 Python 类中的一个特殊方法,由于 object 类己提供了该方法, 而所有 的 Python 类都是 objec ...

  5. 在元素上写事件和addEventListent()的区别

    在元素上写事件和addEventListent()的区别1. onclick添加事件不能绑定多个事件,后面绑定的会覆盖前面的.而addEventListener能添加多个事件绑定,按顺序执行.2. a ...

  6. Newman基本使用

    简介 Newman 是 Postman 推出的一个 nodejs 库,直接来说就是 Postman 的json文件可以在命令行执行的插件. Newman 可以方便地运行和测试集合,并用之构造接口自动化 ...

  7. kmp算法,求重复字符串

    public class Demo { public static void main(String[] args) { String s1 = "ADBCFHABESCACDABCDABC ...

  8. js循环和调用

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. js实现一个简单的链式操作

    如何实现一个链式操作 function person() {} person.prototype = { setname: function(name) { this.name = name retu ...

  10. Openmp编程练习

    火车卖票 // OpenMP2.cpp : 定义控制台应用程序的入口点. // #include "stdio.h" #include "omp.h" #inc ...