py2和py3语法区别
关键字
|
Python2
|
Python3
|
解决方法
|
备注
| |||
---|---|---|---|---|---|---|---|
关键字
|
Python2
|
Python3
|
解决方法
|
备注
| |||
apply() | 内建函数 | 移除 |
2to3 fixer |
Deprecated since release 2.3 | |||
buffer | 内建type | 移除 |
使用 memoryview |
2to3 fixer需要指定才能覆盖到bufferg | |||
callable | 内建函数 | 3.0移除但3.2及之后重新加入 |
迁移到py3.6后版本 |
3.0中可以使用hasattr(bool, '__call__') | |||
Class | old/new style两种 | 移除old style | |||||
cmp() | 内建函数 | 移除 | def cmp(): return (a > b) - (a < b) | ||||
coerce() | 内建函数 | 移除 |
使用numeric operator |
||||
Dict |
|
|
2to3 fixer |
py3中iter前缀没有意义 | |||
except |
|
|
2to3 fixer |
py3不能直接raise string | |||
Exception objects |
|
|
2to3 fixer | ||||
exec | statement | 函数 |
|
||||
execfile | statement | 移除 |
2to3 fixer |
exec(open(thefile).read()) | |||
file |
内建type | 移除 |
使用open(pathname) |
如果是检查类型,使用io.IOBase |
|||
filter | return list | return iterator | 2to3 fixer | ||||
Imports |
假定csv为自建包 import csv导入自建包 |
import csv导入系统包 | relative imports | from __future__ import absolute_import可以改变py3的import策略 | |||
Indentation | 同一文件,tab和space可以混合使用 | 同一文件,不能混合 | 统一风格 | ||||
raw_input() | 内建函数 | 重命名为input() | 2to3 fixer | ||||
Integer division | 3 / 2 → 1 | 3 / 2 → 1.5 | 使用// | from __future__ import division | |||
int&long | 两种整型 | 合并为int | |||||
map | 返回list | 返回iterator | |||||
map |
longest strategy
|
shortest strategy
|
|
||||
Metaclass | __metaclass__ attribute | metaclass parameter |
|
||||
.next() | .next() method | next() built in |
|
||||
Parameter unpacking |
|
|
|||||
statement | built in function | 2to3 fixer | |||||
raise | raise E, V, T | raise E(V).with_traceback(T) |
2to3 fixer
|
E是Exception class V是可选的Exception value T是traceback object |
|||
range() xrange() |
range return list xrange return genrator |
range移除 xrange重命名为range |
2to3 fixer | ||||
repr | `` | 替换为repr |
2to3 fixer |
||||
round |
|
|
py3中round传入第二个可选参数,则返回类型同传入的第一参数的类型 | ||||
sort | sorted(iterable, cmp=None, key=None, reverse=False) | sorted(iterable, /, *, key=None, reverse=False) | 需要手工fix | 没有了cmp | |||
StandardError | 异常类型 | 移除 | 2to3 | 使用Exception |
梦想随心,天地随行