答案 0 :(得分:30)
__ init __。py 运行。例如,程序中的import idlelib
运行idlelib/__init__.py
,它不执行任何操作,因为它的唯一目的是将idlelib目录标记为包。另一方面,tkinter/__init__.py
包含大部分tkinter代码并定义了所有小部件类。
__ main __。py 以' __ main __'运行当你运行一个包作为主程序时。例如,命令行中的python -m idlelib
运行idlelib/__main__.py
,它将启动Idle。同样,python -m tkinter
运行tkinter/__main__.py
,其中包含以下行:
from . import _test as main
在此上下文中,.
为tkinter
,因此导入.
导入tkinter
,其运行tkinter/__init__.py
。 _test
是该文件中定义的函数。因此,调用main()
(下一行)与在命令行运行python -m tkinter.__init__
具有相同的效果。
答案 1 :(得分:1)
__init__.py
将目录标记为python目录,并允许您在包的范围内设置变量。
__main__.py
。 __main__.py
允许您执行包。
这两个答案都是从您链接的答案中获得的。还有其他一些你对这些事情没有理解的东西吗?