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 文件时,我注意到在每个脚本中使用 ma​​in.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()? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot启动类的run方法

asyncio的简单使用,python异步高效处理数据,asyncio.get_event_loop(),loop.run_until_complete(main()),loop.close()

python flask框架不执行if __name__ == '__main__'

如何制作多个文件 Python Bot

windows上react-native run-android时Exception in thread "main" java.lang.IllegalArgumentExcep

pytest之执行测试pytest.main()的使用