正在浏览pyxml module...
这项作业的意义是什么?
if sys.version_info >= (3,0):
def u(s):
return s
def unicode(x, errors=None):
if hasattr(x, '__unicode__'):
return x.__unicode__()
return str(x)
else:
def u(s):
return unicode(s)
unicode = unicode # <<<<<< This one >>>>>>>>发布于 2019-01-21 21:04:13
它将内置名称unicode绑定到模块全局名称(也称为unicode)。这模仿了def unicode创建模块全局名称的方式。因此,任一分支都允许获取名称。
from module import unicode # unicode is defined in all cases由于模块全局变量总是在builtins模块之前检查,这也加快了unicode名称的查找速度。对于常用的内置名称,这可以提高整体性能。
$ python3 -m perf timeit 'str("hello world")'
.....................
Mean +- std dev: 150 ns +- 12 ns
$ python3 -m perf timeit -s 'import builtins' -s 'str = builtins.str' 'str("hello world")'
.....................
Mean +- std dev: 124 ns +- 3 ns
$ pypy3 -m perf timeit 'str("hello world")'
.........
Mean +- std dev: 8.28 ns +- 0.39 ns
$ pypy3 -m perf timeit -s 'import builtins' -s 'str = builtins.str' 'str("hello world")'
........
Mean +- std dev: 0.65 ns +- 0.01 nshttps://stackoverflow.com/questions/54289909
复制相似问题