【发布时间】:2011-05-01 18:32:02
【问题描述】:
我看过一些使用的代码示例和教程
def main():
# my code here
if __name__ == "__main__":
main()
但是为什么呢?有什么理由不在文件顶部定义你的函数,然后在它下面写代码?即
def my_function()
# my code here
def my_function_two()
# my code here
# some code
# call function
# print(something)
我只是想知道主要是否有任何押韵?
【问题讨论】:
-
stackoverflow.com/questions/419163/what-does-if-name-main-do 没有回答整个问题。
-
假设的副本没有回答的问题:拥有一个 main() 函数(而不是仅仅将所有代码写入“if name”块)很有用,因为它避免意外创建可能影响其他函数的全局变量。
-
与其他答案一样,拥有执行代码的入口点可以使用 setup.py 中的入口点自动生成包含导入和执行步骤的可执行脚本。当您希望您的用户能够编写
setup-my-app ...而不是python2.7 /opaque/path/to/module.py ...时,这很好 -
这样做的缺点是现在我的代码在 main() 设置的每个 CONSTANT 的“def main()”顶部都有大量“全局”声明。这看起来不专业(至少对我来说)。
标签: python coding-style