从动态生成的模块导入时运行代码

时间:2015-12-04 19:04:46

标签: python

我已使用this SO answer动态生成模块x并在sys.modules中注册。我希望在此模块上调用导入时自动运行一段代码。所以我想要print "you just imported module x"。所以它表现得像:

>>> import x
you just imported module x

我如何得到这种行为?

2 个答案:

答案 0 :(得分:0)

要简单地扩展所选答案中给出的示例,您可能会这样。

print "You just imported module {}".format(foo.Foo.__module__)

答案 1 :(得分:0)

任何"孤儿"导入模块时,将执行代码(不在类或函数内部或if __name__ == '__main__:'块内部编写的代码)。