为什么 Python 中的标准是 main()
函数和 if __name__ == '__main__'
检查代码块的末尾?函数的抽象向上遵循相同的模式似乎也是标准的。我的意思是main()
要执行的函数的定义高于 main()
以及上面的函数定义等等..
这看起来很奇怪,因为当打开模块阅读代码时,它最终会从低级代码开始,然后向上移动到更高级别的功能。以这种方式理解模块在做什么是不是很难?
为什么不做替代呢?有如果 __name__
检查顶部,然后是 main()
功能等等。这样一来,main()
的内容很快就扫了一眼。函数执行并理解代码的内容。
最佳答案
您不能调用main()
在它被定义之前。和 main
在定义之前不能调用其他函数。
示例 1:
if __name__=='__main__':
main()
def main():
print("Hello")
这会出错,因为
main
在您尝试执行它时尚未定义。示例 2:
def main():
hello()
if __name__=='__main__':
main()
def hello():
print("Hello")
这会出错,因为
main()
被执行并尝试调用 hello
在它被定义之前。if __name__=='__main__':
其中包含对 main()
的调用最好放在文件的末尾,以便在到达之前定义它需要的所有内容。您把
main
放在哪里定义本身更灵活,但把它放在最后(就在调用它的 if __name__=='__main__':
块之前)和其他任何地方一样有意义。
关于python - 为什么不将 if __name__ == '__main__' 放在模块的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60146902/