检测导入的模块

时间:2014-03-12 19:16:21

标签: python module python-import

Python模块有没有办法知道用户将其导入的内容?

例如,如果用户import myModule as foomyModule中的代码是否有办法知道用户将其导入为foo

1 个答案:

答案 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')
但是,有点笨拙。