Python 格式:run() 还是 main()? [关闭]
Posted
技术标签:
【中文标题】Python 格式:run() 还是 main()? [关闭]【英文标题】:Python format: run() or main()? [closed] 【发布时间】:2018-07-04 03:49:51 【问题描述】:刚接触 Python 世界并来自 MATLAB,我总是被教导使用 run()
函数来执行脚本。
但是,当在 Python 中处理多个 .py
文件时,我注意到在每个脚本中使用 __main__.py
和随后的 main()
函数是很常见的(必需的?)。
我通读了PEP8 Style Guide 和Google Style Guide,似乎每个脚本中都有一个main()
函数似乎是常见的约定,但是...
我使用run()
是不是不正确(或风格不好)?您首选的命名约定是什么?
【问题讨论】:
调用主函数main
的传统来自C/Java/C++/C#世界,其中主函数必须被调用main
。
你可以随意命名你的函数。真的没有硬性规定。正如@DYZ 所说,人们通常将其称为main,因为在其他语言中,必须调用名为main
的函数才能执行程序。
【参考方案1】:
但是,当在 Python 中处理多个 .py 文件时,我注意到在每个脚本中使用 main.py 和随后的 main() 函数是很常见的(必需的?)。
不,不需要在 Python 包中包含 __main__.py
文件。简而言之,__main__.py
是一个方便的入口点钩子,它允许您命名如果要使用 Python 运行模块时应该运行的代码。例如,如果我有一个名为 foo
的包(文件夹)和一个 __main__.py
文件:
foo
|
+--- __main__.py
|
+--- foo.py
然后我可以直接从命令行运行包:
$ python foo
然后Python 将执行foo
中的__main__.py
文件。如您所见,这为某人执行您包中的代码提供了一种方便的方式。
我使用 run() 是否不正确(或风格不好)?您首选的命名约定是什么?
您可以随意命名执行代码的主函数,包括run
。人们通常称它为main
的原因是在其他语言中,必须调用名为 main 的函数来执行程序。 It's the entry point the OS uses to execute your program.
【讨论】:
【参考方案2】:您可以在 Python shell 中使用execfile(filename)
。
您的问题的详细解决方法可以在here找到。
附:无需将您的函数命名为 main()
左右。选择您喜欢的任何非保留或内置的内容。
【讨论】:
以上是关于Python 格式:run() 还是 main()? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
asyncio的简单使用,python异步高效处理数据,asyncio.get_event_loop(),loop.run_until_complete(main()),loop.close()
python flask框架不执行if __name__ == '__main__'
windows上react-native run-android时Exception in thread "main" java.lang.IllegalArgumentExcep