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

在Python中使用main方法的好处是什么?,python,Python,我一直在学习Python,作为一个有Java和C#背景的人,我能够理解为什么我们需要在这些语言中使用main方法,但我不太理解Python。我可以很容易地得到我想要的东西,而无需编写类,或者如果我想导入或编写模块,它根本不需要在其中定义任何类 作为入口点,一个简单的myFunction()调用作为第一条语句就足够了,我可以在下面几行中定义这个方法,我可以让这个方法进行初始化,等等 关于上面的陈述,如果我错了,请纠正我,但是如果我有所有这些简单的东西,我到底需要什么来使用main方法呢?Pytho

我一直在学习Python,作为一个有Java和C#背景的人,我能够理解为什么我们需要在这些语言中使用main方法,但我不太理解Python。我可以很容易地得到我想要的东西,而无需编写类,或者如果我想导入或编写模块,它根本不需要在其中定义任何类

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

关于上面的陈述,如果我错了,请纠正我,但是如果我有所有这些简单的东西,我到底需要什么来使用main方法呢?

Python中实际上没有main方法,而是一个主保护,即一个测试,看看模块是否是脚本/程序的入口点。这看起来像:

if __name__ == '__main__':
     # your code
在模块中使用main-guard子句可以让您直接在模块中运行代码,也可以使用来自其他模块的模块中的过程和类。如果没有main-guard子句,则在导入模块时启动脚本的代码将运行

def main():
   #blah blah 
这只是一个惯例,你可以随意命名


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

简单地说,
\uuuuuu main\uuuuu
只是测试运行的程序是否是主程序的一种方法

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

def f1(x):
    #code

def f2(x):
    #code

.
.
#etc

f1(x)
f2(x)
.
.
#etc
问题是,如果您将该程序作为模块导入,并且不希望在它作为模块时调用某些函数,该怎么办?这就是
\uuuu main\uuuu
的目的

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

f1(x)

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

我不确定这是否回答了这个问题。。。python中没有神奇的
main()
方法。。。只要一个if语句就行了。将重新措辞。@JoranBeasley你是对的,谢谢你提到它@corriganjc你的答案会和Joran Beasley的答案一样完整。知道这个真的很好。非常感谢。
f1(x)

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