什么是模块`builtin`的`__import__`属性的默认绑定?

时间:2017-06-20 14:11:11

标签: python python-3.x python-import python-internals python-importlib

从坚果壳中的Python

  

自定义导入程序

     

Python提供的高级,很少需要的功能就是   能够改变某些或所有导入和来自的语义   语句。

     

重新绑定__import __

     

您可以重新绑定模块__import__的{​​{1}}属性   到你自己的自定义导入器功能 - 例如,一个使用   在“Python内置函数”中显示的通用内置包装技术   第174页。

  1. 在“您可以重新绑定模块builtin的{​​{1}}属性”中,“模块__import__”应该是“模块builtin”吗?

  2. “模块builtinbound to importlib.__import__function by defaultbuiltins属性是?或者“模块__import__”是否提供绑定到其builtin属性的默认实现?

1 个答案:

答案 0 :(得分:2)

  1. 是的,这是书中的拼写错误。在Python 2中,相同的模块名为__builtin__(无s),在Python 3中,它被命名为builtins

  2. builtins.__import__是与importlib.__import__不同的功能。如果您要重新绑定builtins.__import__,请保存参考。