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

10 投票
4 回答
18740 浏览
提问于 2025-04-18 15:34

看完下面的内容,我觉得把即使是最简单的脚本也放在一个 main() 函数里是很有价值的。

我应该把所有的函数都放在 main() 里面还是外面呢?

这样做有没有对错之分?这两种方法各有什么优缺点呢?

4 个回答

0

你好,这是个好问题。

很多有C++、Java和C#经验的Python程序员习惯使用main()函数,所以他们喜欢用def name = "main"这样的写法。虽然“老派”的程序员喜欢这样,但Python是一种非常灵活、自由的编程语言(其实它是一种脚本语言),并不需要一个main函数。

比如,如果你想做一个简单的计算器程序,你可以直接定义一个叫“calc”的函数,Python会觉得很不错。我自己做过一个图形界面的向量计算器,也没有用“main”函数,所以根本不需要这个东西。

def calc(x, y):
sum = x + y
return sum

0

所以,main只是一个入口点,通常不适合放很多方法。最好的做法是把功能分开到不同的类里。如果将来需要做修改,这样也更容易管理。希望这对你有帮助。

5

如果你在主函数里面定义一个函数,你就不能在外面使用这个函数。下面是一个例子:

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!
8

我不建议在main()里面定义函数,特别是当你的Python脚本有多个文件的时候。因为在函数A里面定义的函数B,在函数A外面是无法使用的,这样就大大限制了它的使用范围。比如说,定义在main()里的函数是不能在其他地方被导入的。

main()里面定义函数虽然可以让你轻松覆盖其他地方写的同名函数,但这种情况其实很少见,所以不应该把它当作常规做法。总的来说,定义函数在main()外面有很多好处,而在里面定义的理由则很少。如果你正在学习Python,最好还是按照这个方式来处理。

撰写回答