sys.version_info.major做什么? 我知道sys.version_info返回我们正在使用的解释器版本。专业在这方面应该扮演什么角色? 它在这段代码中是如何工作的:
import sys
if sys.version_info.major<3:
#code here
else:
#code here
答案 0 :(得分: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 ... future 导入不能在 if 套件中,因为它必须出现在其他进口之前。但是Python 2.x和Python 3之间的 input()内置函数的语义变化可以在条件中处理。
在大多数情况下,在同一文件中支持Python2和Python3的努力中,要做到这一点是个坏主意。
Python2和Python3之间更具挑战性的变化与作为字节的字符串和作为Unicode的较新字符串相关;因此需要明确指定编码并为许多网络协议和API使用 bytes 对象。
答案 1 :(得分:0)
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)
major可以告诉你它是python2还是python3。我猜它导入不同的库取决于特定的python版本。
我使用的是python 3.5.1,你可以看到关于它的version_info
。
答案 2 :(得分:0)
例如,我的计算机上安装了Python 3.5.3。 sys_version
存储以下信息:
sys.version_info(major=3, minor=5, micro=3, releaselevel='final', serial=0)
版本分为major
,minor
和micro
的原因是程序员为多个版本的Python编写代码可能需要以某种方式区分它们。大多数差异都在Python的主要版本2和3之间,这解释了代码中major
用法的上下文。
答案 3 :(得分:-2)
告诉您 Python 版本:>>> sys.version_info
sys.version_info
sys.version_info(major=3, minor=7, micro=8, releaselevel='final', serial=0)