What is the default binding to the `__import__` at

2019-09-14 02:22发布

From Python in a Nutshell

Custom Importers

An advanced, rarely needed functionality that Python offers is the ability to change the semantics of some or all import and from statements.

Rebinding __import__

You can rebind the __import__ attribute of the module builtin to your own custom importer function—for example, one using the generic built-in-wrapping technique shown in “Python built-ins” on page 174.

  1. In "You can rebind the __import__ attribute of the module builtin", should "the module builtin" be "the module builtins" instead?

  2. Is "the __import__ attribute of the module builtin" bound to importlib.__import__function by default? Or does "the module builtin" provide the default implementation bound to its __import__ attribute?

1条回答
劫难
2楼-- · 2019-09-14 02:37
  1. Yes, that's a typo in the book. In Python 2 the same module is named __builtin__ (no s), in Python 3 it is named builtins.

  2. builtins.__import__ is a distinct function from importlib.__import__. If you are going to rebind builtins.__import__, save a reference.

查看更多
登录 后发表回答