繁体   English   中英

如果__name__ ==“ __main__”

[英]if __name__ == “__main__” on Imports

我正在处理两个python文件。 一旦完成,我计划从另一个呼叫另一个:

main.py
import os, re, time, logging, sys, subprocess, operator, datetime, pprint, dbfread, collections, calendar, xlwt, xlrd, errno, platform, stat
import subfile
# A long body of codes that does things

subfile.py
import os, re, time, logging, sys, subprocess, operator, datetime, pprint, dbfread, collections, calendar, xlwt, xlrd, errno, platform, stat
# Another long body of codes that does things

如果我调用main.py,我希望它也可以运行subfile.py 有时,我将单独运行subfile.py并希望它自己正常运行。 现在,在subfile.py ,应该将导入命令嵌套在if __name__ == "__main__"吗?

subfile.py
if __name__ == "__main__": 
    import os, re, time, logging, sys, subprocess, operator, datetime, pprint, dbfread, collections, calendar, xlwt, xlrd, errno, platform, stat
# Another long body of codes that does things

不,通常,将导入文件放在文件顶部,然后让python管理它。 在某些情况下,应将导入内容放在类/方法/函数中,但这不是其中一种。

如果事情变得更复杂,则可以将导入内容放在软件包的__init__.py中。

如果您的动机是避免完全导入同一模块,请不要担心。

导入一个已经导入的模块几乎是无操作的,基本上只是对模块的一次查询。

因此,没有任何好处,只是使程序变得更复杂,更易读的缺点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM