__main__和launch()方法之间的区别

时间:2016-08-10 16:17:30

标签: python

我还处于学习阶段,我有这个问题。

因此,为了执行一个类,我们使用if __name__ == '__main__':并将该类调用为以下

class Example():
     def test(self):
        print "Hello There"

if __name__ == '__main__':
    Example()

但是,我看到一些使用def launch():代替if __name__ == '__main__':的课程,所以问题在于:它们是否相似所以我可以双向或def launch():有特别的建议?

谢谢。

1 个答案:

答案 0 :(得分:-1)

Python在顶层运行任何东西,这就是为什么我们使用类和函数来分离作业(以及其他原因)。

所以例如这里

脚本a.py

def main():
    pass

main()

解释器将定义一个名为main()的函数,但是当它到达顶层的main()调用时(最左边对齐) 它将执行主要功能。

现在是launch()

的情况
if __name__ == '__main__':
    Example()

VS

__name__ = __main__

这用于某人想要导入程序或类,但在解释器遇到它时不希望它运行的情况。

导入将在该时间点调用main() 但是,让我们说b.py在结构上相似但不是main()__name__ = __main__b.py除非直接调用,否则不会运行。

我提出这个问题的原因是因为@ harshil9968指出,Python没有"启动"方法。可能发生的事情是他们定义了launch()方法而不是main()

然后把它放在一个类

class A():
    def launch(self):
       #actions

if __name__ == '__main__':
     A()

致电A()调用launch()类中的A方法。