5

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

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

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

4

3 回答 3

11

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

if __name__ == '__main__':
     # your code

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

于 2013-10-24T23:09:38.233 回答
3
def main():
   #blah blah 

只是一个约定,您绝对可以随意命名

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

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

于 2013-10-24T23:11:43.213 回答
2

简单来说,__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)
于 2013-10-24T23:26:31.617 回答