在Python中使用main方法有什么好处?

时间:2013-10-24 23:06:43

标签: python

我一直在学习Python,作为一个拥有Java和C#背景的人,我可以理解为什么我们需要在这些语言中使用main方法,但我不太适合Python。我可以在不编写类的情况下轻松获得我想要的内容,或者如果我想导入或编写模块,则根本不需要定义任何类。

作为一个入口点,一个简单的myFunction()调用就足够作为第一个语句,我可以在以下行中定义这个方法,我可以让该方法进行初始化等等。

关于上述陈述,请纠正我,如果我错了,但如果我有这些简单的事情,我需要使用主要方法吗?

3 个答案:

答案 0 :(得分:8)

Python中并没有真正的主要方法,而是一个主要的防护,即测试模块是否是脚本/程序的入口点的测试。这看起来像:

if __name__ == '__main__':
     # your code

在模块中使用主保护子句允许您直接在模块中运行代码,也可以使用其他模块中的模块中的过程和类。如果没有main guard子句,则在导入模块时将启动运行脚本的代码。

答案 1 :(得分:3)

def main():
   #blah blah 

只是一个你可以随心所欲地命名的惯例

if __name__ == "__main__":
    some_function()
    or_some_commands()

是仅在脚本是程序的主要入口点时才运行的重要部分

答案 2 :(得分:1)

简而言之,__main__只是一种测试程序运行是否为主程序的方法。

例如,您可以编写整个程序并调用该程序中的所有函数:

def f1(x):
    #code

def f2(x):
    #code

.
.
#etc

f1(x)
f2(x)
.
.
#etc

如果您import将此程序作为模块编写,并且不希望在模块中调用某些函数,那么问题是什么呢?这就是__main__的目的。

因此,如果您希望f1始终运行,而f2仅在未作为模块导入时运行,则应键入以下if语句:

f1(x)

if __name__=='__main__':
    f2(x)