如果__name__ =='__main__'不起作用ipython

AZhao

我无法获得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 UnitTestMod1 UnitTest打印出来。它们在IPython内核中执行。我只希望Mod2 UnitTest显示消息。

知道发生了什么吗?

AZhao

好吧,我很尴尬地删除了这个问题,但是如果其他任何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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果在IPython中__name__ =='__main__'

如果__name__ =='__main__'函数调用

python manage.py shell <scripts / myscript.py在文件包含__name__ =='__main__'时不起作用

if __name__ ==“ __main__”的位置:

替代 if __name__ == '__main__':

如果__name__ ==“ __main__”条件(带烧瓶/弹性豆茎)

如何测试或模拟“如果__name__ =='__main__'”内容

__name__ ==“ __main__”怎么办?

来自 if __name__ == "__main__" 的返回语句

如何使用 if __name__ == '__main__':

R是否等效于pythonic的“如果__name__ ==“ __main__”:main()“?

是否有C与Python等效:如果__name__ =='__main__':在文件顶部写入main()?

Python:如果__name__ =='__main__',则导入并初始化Argparse?

Python:如果__name__ =='__main__',则导入并初始化Argparse?

如果__name__ =='__main__':语句下写很多代码是否常见?

如果__name__ =='__main__',则相当于python的node.js

Python:命令行,sys.argv,“如果__name__ =='__main__'”

python if __name__ ==“ __main__”:IndentationError:预期为缩进块

如何在“if __name__ == '__main__'”中模拟.patch 变量

使用python-multiprocessing与if __name__ =='__main__'相关的谜

使用 if __name__ == "__main__" 从其他文件调用函数:

将多个参数传递给 Python __name__=="__main__"

为什么不将__name__ =='__main__'放在模块的开头?

如果 __name __ == '__main__', gunicorn 是否也执行

如果__name__ ==“ __main__”,则Apache上托管的web.py不会在一边运行代码:

Pycharm“Python 控制台”中的 exec(open) 函数不执行“if __name__ == '__main__”块

在Python中调用getLogger之前,是否需要显式检查__name__ ==“ __main__”?

if __name__ == "__main__": 做什么?它是干什么用的?

在Python multiprocessing.Process中,我们是否必须使用`__name__ == __main__`?