阅读下面的内容后,我认为即使是最简单的脚本也要放在main()函数中包装。
我应该在main()内部还是外部定义所有函数?
这有对错之分吗?这两种方法的优缺点是什么?
阅读下面的内容后,我认为即使是最简单的脚本也要放在main()函数中包装。
我应该在main()内部还是外部定义所有函数?
这有对错之分吗?这两种方法的优缺点是什么?
main()
函数内部定义函数,特别是当你在Python脚本中有多个文件时。在函数A
内部定义的任何函数B
都不能被函数A
外部的任何内容使用,严重限制了其可用性。在main()
函数内部定义的函数也无法在其他地方导入。main()
函数内部定义函数可以让您轻松覆盖可能已经编写在其他地方并具有相同名称的函数,但实际上这种情况非常少见,您不应该将其作为一般惯例。总体而言,在main()
函数外部定义函数的原因比在内部定义函数的原因多得多,如果您正在学习Python,那么这绝对是应该遵循的做法。如果你在主函数内部定义了一个函数,那么你无法从外部使用它。以下是一个例子:
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函数只是一个入口点,通常不适合放置大量的方法。最佳实践是将功能分离到各个类中。这也使得在未来需要进行更改时更容易管理。希望这可以帮助到您。
你好,问得好。
许多有C++、Java和C#经验的Python程序员习惯于使用def name = "main"来定义某些函数,虽然这种方式更适合“老派”的程序员,但是Python是一种非常灵活、自由的编程语言(实际上它是一种脚本语言),不需要一个主函数。
如果你要制作一个基本的计算器程序,你只需要创建一个名为“calc”的函数,Python就可以愉快地工作了。我已经制作了一个GUI向量计算器,没有“main”函数,所以完全没有必要。
def calc(x, y): sum = x + y return sum
main()
函数本身,而是if __name__ == '__main__'
保护语句提供了这些帖子中讨论的大部分价值,而这又集中在能够从脚本中import
东西上。如果你把其他函数放在main()
中,那么你就会失去这个价值。 - Two-Bit Alchemist