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

时间:2014-07-31 21:37:17

标签: python main code-structure

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

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

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

4 个答案:

答案 0 :(得分:4)

如果在main函数内定义一个函数,则无法从外部使用它。这是一个例子:

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!

答案 1 :(得分:3)

我不鼓励在main()内定义函数,特别是如果Python脚本中有多个文件。函数B内定义的任何函数A都不能被函数A以外的任何函数使用,严重限制了它的可用性。例如,main()中定义的函数无法导入其他位置。

定义main()内部的函数可以让你轻松覆盖你在其他地方写过的具有相同名称的其他函数,但实际上这些函数非常有用的实例很少,你不应该这样做作为一般做法。总的来说,定义main()之外的函数比在里面定义它们有更多的理由,如果你正在学习Python,那肯定是你应该如何处理它。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您好,问题很好。

只是"正在使用" main()函数,许多具有C ++,Java和C#经验的Python程序员喜欢使用def name =" main "某种。虽然"老学校"像这样的程序员,Python是一个非常多才多艺的自由形式编程(实际上它是一种脚本语言),它不需要主函数。

如果你要制作一个基本的计算器程序,你可以创建一个名为" calc"的函数,Python会很高兴。我制作了一个GUI矢量计算器,没有" main"功能,所以有零需要。

def calc(x,y):     sum = x + y     返还金额