【发布时间】:2016-06-08 21:51:43
【问题描述】:
我想在模块本身被导入时触发模块内的一个函数;
根据我的测试,我似乎可以检查 __name__ 是否不是 __main__ 并将其用作解决方案;但我想知道是否有更好的方法来使用某种导入钩子?
if __name__ != '__main__':
# I was imported
...
我想针对这种特定情况修改模块中存在的一个对象,并且只修改一次。
我在这方面取得了成功;但我想知道是否有其他方法可以解决这个问题。
if __name__ == '__main__':
example = 0
else:
example = 1
【问题讨论】:
-
您希望每次导入时都发生这种情况,还是只在每个解释器第一次发生这种情况?
-
this的可能重复
-
@limbo 这个问题不是从正确的角度来看的;我希望从模块的角度来看。
-
@user2357112 我想修改模块中存在的一个对象,以适应它被导入的情况;并且只修改一次。
-
顶级逻辑在导入时运行一次。各种 stdlib 包具有在导入时生成的便利助手。我相信 re、rand 和 os 会这样做。
标签: python