0

做什么sys.version_info.major

我知道这会sys.version_info返回我们正在使用的解释器版本。在这其中必须扮演什么角色major

它在以下代码中如何工作?

import sys 

if sys.version_info.major < 3:
    #code  here   
else:
    #code here
4

4 回答 4

2
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=5, micro=1, releaselevel='final', serial=0)

专业可以告诉你是python2还是python3。我猜它导入不同的库取决于特定的 python 版本。

我使用的是 python 3.5.1,你可以看到version_info它。

于 2017-05-29T19:49:27.950 回答
1

这是一个老生常谈的例子:

from __future__ import print_function
import sys 
  if sys.version_info.major<3:
           input = raw_input  # Python2 ~== eval(input())  
  else:
            #code here

这使得 Python 2.x 的行为更像 Python 3……未来的导入不能在if套件中,因为它必须出现在其他导入之前。但是Python 2.x 和 Python 3 之间input()内置函数的语义变化可以在条件中处理。

在大多数情况下,在同一个文件中支持 Python2 和 Python3 的努力超出此范围是一个坏主意。

Python2 和 Python3 之间更具挑战性的变化将字符串作为字节与较新的字符串作为 Unicode 相关;因此需要为许多网络协议和 API显式指定编码并使用字节对象。

于 2017-05-29T20:00:08.457 回答
0

例如,我的计算机上安装了 Python 3.5.3。sys_version存储以下信息:

sys.version_info(major=3, minor=5, micro=3, releaselevel='final', serial=0)

版本被拆分为 的原因是,major为多个 Python 版本编写代码的程序员可能需要以某种方式区分它们。大多数差异都在 Python 的主要版本 2 和 3 之间,这解释了代码中的使用上下文。minormicromajor

于 2017-05-29T19:51:30.750 回答
-2

告诉你 Python 版本:>>> sys.version_info

sys.version_info

sys.version_info(major=3, minor=7, micro=8, releaselevel='final', serial=0)
于 2021-02-04T21:31:07.893 回答