import sys def getVer(): #get the python version tmpver=sys.version_info return '%d%d%d'%(tmpver[0],tmpver[1],tmpver[2])
可取得当前python的版本,按主,次,微三个版本分量组合,返回类型为’273’之类的串,而’273′>’2699’,即python 2.7.3版本高于2.6.99版本。但是,需注意的是:若以后出了2.11.4版本,如何与2.1.14版本区分呢?所以如此将三个分量简单连接的方式比较,也是有问题的。
获得版本号,可以用于一些牵涉版本兼容性的判断。比如:
o=urlparse(urlstr)
netaddr=o.scheme+’://’+o.netloc+’/’ #此句在2.7.3中可用,而在2.4.3中就不被支持。
而若用o[0]和o[1]分别替换o.scheme和o.netloc,可实现两个版本的兼容。因此从旧版程序升级至新python环境一般没什么问题。有时候python新版会增加一些新功能,也可以判断版本来处理:
if getVer()>'260': u = urllib2.urlopen(req,timeout=60) #2.7.3 有timeout参数 else: sockeet.setdefaulttimeout(60) u = urllib2.urlopen(req) #2.6以下无timeout参数,import进socket库设置全局timeout值。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/582.html