标签:ems 整数 elf python2 相同 替代 统一 pytho 返回
1.除法
Python2 |
Python3 |
int/int → int |
int/int → float |
建议兼容写法:
2.数字
Python2 |
Python3 |
int类型的最大值为sys.maxint |
int无最大值限制 |
long类型无最大值 |
取消long类型,所有整数为int类型 |
常量1L表示long类型的常量 |
1L为语法错误 |
八进制常量以0或0o开头 ,如0600, 0o600 |
八进制常量只可以用0o开头, 如0o600 |
主要兼容问题:
建议兼容写法:
3迭代器
Python2 |
Python3 |
def next(): |
def __next__() |
iter.next() |
一般不使用此语句 |
next(iter) |
next(iter) |
建议兼容写法:
....
def __next__(self):
return self.next()
2. 如果基类中已经按照上面定义了__next__(), 改写了next()的派生类无需再定义__next__()
3. 不要使用iter.next(), 统一使用next(iter), 注意next()全局函数在python2下调用类的next()方法,在python3下调用类的__next()__方法.
4字典
Python2 |
Python3 |
dict.keys()返回列表 |
dict.keys()返回迭代器 |
dict.iterkeys()返回迭代器 |
无此语句 |
dict.items()返回列表 |
dict.items()返回迭代器 |
dict.has_key(x) |
无此函数 |
x in dict |
x in dict |
建议兼容写法:
5异常处理
Python2 |
Python3 |
except ImportError, e |
语法错误 |
except ImportError as e |
except ImportError as e |
raise ImportError,‘msg‘ |
语法错误 |
raise ImportError("msg") |
raise ImportError("msg") |
以上全部使用Python3的写法, Python2的写法不再被Python3支持。Python3的写法在python2的语义相同
标签:ems 整数 elf python2 相同 替代 统一 pytho 返回
原文地址:https://www.cnblogs.com/berrycake/p/10375489.html