我一直在学习Python,作为一个拥有Java和C#背景的人,我可以理解为什么我们需要在这些语言中使用main方法,但我不太适合Python。我可以在不编写类的情况下轻松获得我想要的内容,或者如果我想导入或编写模块,则根本不需要定义任何类。
作为一个入口点,一个简单的myFunction()调用就足够作为第一个语句,我可以在以下行中定义这个方法,我可以让该方法进行初始化等等。
关于上述陈述,请纠正我,如果我错了,但如果我有这些简单的事情,我需要使用主要方法吗?
答案 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)