我应该在main()内还是外定义函数?
看完下面的内容,我觉得把即使是最简单的脚本也放在一个 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,最好还是按照这个方式来处理。