如果您不想通过两次导入来进行优化,请避免麻烦,因为Python已经解决了这一问题。
如果您 需要 避免此类情况NameErrors
:修正草率的编码- 确保不需要,即在使用之前定义(导入)所有内容(在导入的情况下:一次,在启动时,在模块级别) 。
如果您确实有充分的理由:sys.modules
是一个包含所有已导入到某处的模块的字典。但是它仅包含模块,并且由于其工作方式from <module> import <variable>
(像往常一样导入整个模块,从中提取要导入的内容),from sys import path
只会添加sys
到模块中sys.modules
(如果在启动时尚未导入)。如您所愿from pkg import module
添加pkg.module
。