Spyder IDE 抱怨无法检测未定义的名称
Spyder IDE complaining about unable to detect undefined names
使用 Windows 10 与 Spyder IDE 运行 Python 3.5。我在 __init__.py
文件中看到以下抱怨 unable to detect undefined names
:
但是,__init__.py
文件似乎与所有其他文件位于同一文件夹中。
那么它为什么抱怨?我试图删除前面的前导点,但它仍然抱怨。请指点一下。
你的 IDE 在抱怨,而不是 Python。当您执行 from simple import *
时,您将导入 由 simple
公开的所有内容 。通常不推荐这样做,因为它会污染全局命名空间并可能隐式覆盖现有对象。
您收到警告而不是错误,因为这种行为并不总是不好的。使用 __init__.py
文件公开子模块中的对象是一种非常常见的模式。只要你了解潜在的风险,就把警告静音:
from .input import * # NOQA
如果您的模块没有公开很多对象,只需按名称导入它们:
from .input import A, B, C
这样做的好处是允许 Python 代码分析工具更好地理解您的代码并警告您潜在的问题。
我遇到了同样的问题,
星号。
我找到了模块以按照 Blender
的指示调用它们
解决了
用模块名称更改星号
找到有冲突的名称
当您将它们相加时,错误将消失
感谢您的评论,他们帮助我解决了我遇到的问题
使用 Windows 10 与 Spyder IDE 运行 Python 3.5。我在 __init__.py
文件中看到以下抱怨 unable to detect undefined names
:
但是,__init__.py
文件似乎与所有其他文件位于同一文件夹中。
那么它为什么抱怨?我试图删除前面的前导点,但它仍然抱怨。请指点一下。
你的 IDE 在抱怨,而不是 Python。当您执行 from simple import *
时,您将导入 由 simple
公开的所有内容 。通常不推荐这样做,因为它会污染全局命名空间并可能隐式覆盖现有对象。
您收到警告而不是错误,因为这种行为并不总是不好的。使用 __init__.py
文件公开子模块中的对象是一种非常常见的模式。只要你了解潜在的风险,就把警告静音:
from .input import * # NOQA
如果您的模块没有公开很多对象,只需按名称导入它们:
from .input import A, B, C
这样做的好处是允许 Python 代码分析工具更好地理解您的代码并警告您潜在的问题。
我遇到了同样的问题, 星号。 我找到了模块以按照 Blender
的指示调用它们解决了
用模块名称更改星号
找到有冲突的名称
当您将它们相加时,错误将消失
感谢您的评论,他们帮助我解决了我遇到的问题