Python模块有没有办法知道用户将其导入的内容?
例如,如果用户import myModule as foo
,myModule
中的代码是否有办法知道用户将其导入为foo
?
答案 0 :(得分:5)
不。 Python没有跟踪模块导入的名称。即使它确实如此,一个模块可以在一个程序的过程中由许多名称导入,但它的代码只会在第一次导入时执行,所以它不会有机会对新名称做任何事情。
我想如果你愿意,你可以告诉它的名字:
# In mymodule
def register_name(name):
do_something_about(name)
# At the import site
import mymodule as foo
foo.register_name('foo')
但是,有点笨拙。