我无法获得if __name == '__main__'
在IPython Spyder环境中工作的技巧。我已经尝试了此线程中给出的所有方法:如果在IPython中,如果__name__ =='__main__'
这是我的超级简化模块
Module1.py
Class UnitTest():
print 'Mod1 UnitTest!'
if __name__ == '__main__':
UnitTest()
Module2.py
import Module1
Class UnitTest():
print 'Mod2 UnitTest!'
if __name__ == '__main__':
UnitTest()
因此,我运行Module2.py,并且总是看到它们Mod2 UnitTest
并Mod1 UnitTest
打印出来。它们在IPython内核中执行。我只希望Mod2 UnitTest
显示消息。
知道发生了什么吗?
好吧,我很尴尬地删除了这个问题,但是如果其他任何newb看到了这个问题,也可以分享。
我忘记将UnitTest行放在__init__
方法中。因此,在定义类时(而不是在实例化对象时)每一次都运行一次单元测试。代码应为:
Module1.py
Class UnitTest():
def __init__(self):
print 'Mod1 UnitTest!'
if __name__ == '__main__':
UnitTest()
Module2.py
import Module1
Class UnitTest():
def __init__(self):
print 'Mod1 UnitTest!'
if __name__ == '__main__':
print 'Mod2 UnitTest!'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句