AZh*_*hao 7 python ipython spyder
我无法if __name == '__main__'在IPython,Spyder环境中使用这个技巧.我已经尝试了这个线程中给出的每个方法:
如果在IPython中__name__ =='__ main__'
这是我的超级简化模块
Module1.py
Class UnitTest():
print 'Mod1 UnitTest!'
if __name__ == '__main__':
UnitTest()
Run Code Online (Sandbox Code Playgroud)
Module2.py
import Module1
Class UnitTest():
print 'Mod2 UnitTest!'
if __name__ == '__main__':
UnitTest()
Run Code Online (Sandbox Code Playgroud)
所以我运行Module2.py,我总是看到两个Mod2 UnitTest并Mod1 UnitTest打印出来.这些是在IPython内核中执行的.我只Mod2 UnitTest想要显示消息.
知道怎么了?
好吧,出于尴尬,我早些时候删除了这个问题,但也不妨分享一下,以防其他新手看到这一点。
我忘了把 UnitTest 行放在 __init__方法中。因此,每次定义类而不是实例化对象时,都会运行单元测试。代码应该是:
模块1.py
Class UnitTest():
def __init__(self):
print 'Mod1 UnitTest!'
if __name__ == '__main__':
UnitTest()
Run Code Online (Sandbox Code Playgroud)
模块2.py
import Module1
Class UnitTest():
def __init__(self):
print 'Mod1 UnitTest!'
if __name__ == '__main__':
print 'Mod2 UnitTest!'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2807 次 |
| 最近记录: |