【发布时间】:2018-09-07 10:31:31
【问题描述】:
我创建了两个名为“test.py”和__main__.py的python文件。
在 test.py 中:
import __main__
在__main__.py:
print(__name__)
但是当我运行 test.py 时,它什么也没输出。
然后,我将__main__.py 更改为:
def main():
print("ok")
和 test.py:
import __main__
__main__.main()
运行 test.py 时出现错误:
Traceback (most recent call last):
File "/Users/lyz/test.py", line 2, in <module>
__main__.main()
AttributeError: module '__main__' has no attribute 'main'
谁能告诉我为什么?非常感谢!
【问题讨论】:
-
阅读this可能会帮助你理解“为什么”
-
我对将文件命名为 _main_ 的感觉非常糟糕,因为它确实是为其他目的而保留的。也许有人可以提示_main_的功能?
-
__main__是一个特殊名称,您应该只将它用于具有特殊功能的模块。 docs.python.org/3/library/__main__.html -
这就是为什么
__main__.py是一个不打算导入的顶级应用程序的好名字。对于不同目录中的模块,请使用__init__.py,您将能够通过命名目录来导入它。
标签: python python-3.x