在Python中,使用函数(可能是从importlib
导入的)有没有相当于import *
的等效方式?
我知道你可以使用mod = __import__(...)
来导入模块,它将委托给当前配置的实现。你也可以这样做:
mod_spec = importlib.utl.spec_from_file_location(...)
mod = importlib.util.module_from_spec(mod_spec)
mod_spec.loader.exec_module(mod)
这允许您做一些疯狂的事情,比如在调用 exec_module
之前插入它们以将它们注入模块。(参考自https://dev59.com/anVD5IYBdhLWcg3wKYP-#67692和https://stackoverflow.com/a/38650878/2988730)
然而,我的问题仍然存在。在函数形式中,import *
如何工作?哪个函数根据 __all__
的存在/内容来确定从模块加载哪些名称?
from mod import *
并没有以某种方式暴露出来,它有一个特殊的字节码生成,并由C
代码处理。 - Dimitris Fasarakis Hilliardpython
相关的问题都应该打上通用的python
标签。如果一个问题是关于特定版本的,可以在通用标签之外再添加一个更具体的标签。请注意,这个更具体的标签只是作为补充,而不是替代通用标签。 - juanpa.arrivillaga