将Windows 10与运行Python 3.5的Spyder IDE一起使用。我在__init__.py
文件中看到抱怨unable to detect undefined names
:
但是,似乎__init__.py
文件与所有其他文件位于同一文件夹中。
那为什么抱怨?我试图删除前面的前导点,但它仍然抱怨。请给我一些指示。
答案 0 :(得分:7)
您的IDE抱怨,而不是Python。执行from simple import *
后,您可以导入simple
公开的所有内容。通常不建议这样做,因为它会污染全局命名空间,并可能隐式覆盖现有对象。
您收到警告而不是错误,因为这种行为并不总是坏事。拥有一个从子模块公开对象的__init__.py
文件是一种非常常见的模式。只要你了解潜在的风险,就要沉默警告:
from .input import * # NOQA
如果您的模块没有公开许多对象,只需按名称导入它们:
from .input import A, B, C
这样做的好处是允许Python代码分析工具更好地理解您的代码并警告您潜在的问题。
答案 1 :(得分:0)