我的大多数Python脚本(主要是针对网页抓取/数据科学应用程序编写的)都遵循以下格式:
# import whatever packages
import x, y, z
# do some web-scraping and data manipulation
# write some niche function I need
# make some plots and basically end the script
这一切都是通过交互式编辑器/控制台(如Eclipse)完成的。我基本上编写了上面的代码,然后复制粘贴下面的代码进行测试。
是否有更多"标准"怎么办呢?我知道C具有在main
函数之上定义的函数,我在Python中看到具有if __name__ == "__main__"
约定的包;这是"适当的"怎么去发展?我想核心问题是你是否希望能够使用你在其他项目中编写的函数。
答案 0 :(得分:1)
使用if __name__ == "__main__"
的主要原因是,如果从其他文件导入文件,则其下的代码不会运行。当在python中导入文件时,它只是通过解释器运行,就好像它已经粘贴在那一点一样,但通常你只需要在文件中定义的函数,而不是在文件中运行任何代码。
例如,如果您想测试文件中的函数,或者在另一个文件中使用它们,您可以将实际运行函数的代码放在if __name__ == "__main__"
下。
由于您为自己的消费编写代码,因此您是否要将代码置于if __name__ == "__main__"
之下,完全取决于您,但如果您想要以可重用的方式编写代码。
Python中没有关于如何组织代码的官方普遍遵循的标准。关于您的具体问题,为了便于阅读,并遵循常见的样式模式,我建议您将功能置于顶部,并将您的网页抓取,数据操作和绘图分组到底部。
答案 1 :(得分:0)
我见过以前在文件中的不同位置写有if __name__ == "__main__"
的Python包,以及在同一文件的其他地方定义的main()。不过,我相信它应该放在您打算作为主要文件的底部。
例如,它看起来像这样:
import everything
define class1
define function1
define class2
define function2
define function3
define main()
call function3
call function4
do_things
define function4
define function5
if __name__ == "__main__":
run_main()
上面的示例是我实际上在工作中运行的非常通用的版本。执行时,它会调用其他一些文件,并且工作得很漂亮。它甚至在if __name__ == "__main__":
块中检查以检查Python的最低版本。
希望这有帮助。