关于python:我应该在main()内部还是外部定义函数?

Should I define functions inside or outside of main()?

在阅读了下面的内容之后,我想我理解了在main()函数中包装最简单的脚本的价值。

  • 我应该在简单的python脚本中使用main()方法吗?
  • 为什么使用def main()?

我应该在main()内部还是外部定义所有函数?

有正确或错误的方法吗?这两种方法的优点和缺点是什么?


如果您在主函数内部定义了一个函数,您将无法从外部使用它。下面是一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
def outer():
    print"outer function"

def main():
    def inner():
        print"inner function"
    inner()

if __name__ =="__main__":
    main()  # outputs:"inner function"
    outer() # outputs:"outer function"
    inner() # fails!

我不鼓励在main()中定义函数,尤其是在Python脚本中有多个文件的情况下。在函数A内定义的任何函数B不能被函数A外的任何函数使用,严重限制了其可用性。例如,在main()中定义的函数不能导入到其他地方。

main()中定义函数可以让您轻松地覆盖在其他地方编写的同名函数,但实际上有用的实例很少,而且两者之间相差很远,您不应该将其作为一般实践。总的来说,在main()之外定义函数的原因比在main()内部定义函数的原因要多,如果您正在学习python,那么您应该如何处理它。


你好,问得好。

通过"使用到"主()函数,许多以前在C++、Java和C语言中的Python程序员喜欢使用DEFName="Mead"。虽然"老派"程序员喜欢这样,但python是一种非常通用的、自由形式的编程(实际上它是一种脚本语言),它不需要主函数。

如果你要做一个基本的计算器程序,你可以做一个叫做"calc"的函数,而python会很高兴的。我已经做了一个没有"主"函数的图形用户界面向量计算器,所以没有必要。

DEF Calc(x,y):和= x+y返回和


所以main只是一个入口点,对于很多方法来说通常不是一个好地方。最佳实践是在类之间分离功能。如果需要进行更改,还可以更容易地在将来进行管理。希望这有帮助。