根据http://www.python.org/dev/peps/pep-0302/,我在理解导入器协议方面遇到了一些麻烦。如果fullname
的finder.find_module(fullname, path=None)
参数永远包含a。 (点)?
也就是说,如果您要查找模块abc.efg.hij
,则必须致电finder.find_module('hij', path='abc.efg')
。致电finder.find_module('abc.efg.hij')
绝对不正确。
这是对的吗?
答案 0 :(得分:2)
不,只是说import abc.efg.hij
最终会在导入过程的不同阶段产生3个不同的find_module
来电:
find_module("abc", None)
find_module("abc.efg", abc.__path__)
find_module("abc.efg.hij", abc.efg.__path__)
探索importlib文档可能也是您感兴趣的: http://docs.python.org/py3k/library/importlib#importlib.abc.Finder.find_module