【发布时间】:2015-12-04 19:04:45
【问题描述】:
我已经使用this SO answer动态生成了一个模块x并注册到sys.modules。我希望在此模块上调用导入时自动运行一段代码。所以例如我想要print "you just imported module x"。所以它的行为类似于:
>>> import x
you just imported module x
我如何获得这种行为?
【问题讨论】:
-
为什么不把它放在模块本身呢?即在示例中的
class Foo:之前 -
每次导入模块时都应该发生这种情况吗?如果是这样,您可能需要弄乱导入钩子才能做到这一点。
-
Padraic 没有给出所需的行为,因为打印代码是在调用
exec时执行的,而不是在导入模块时执行的。
标签: python