代码之家  ›  专栏  ›  技术社区  ›  Nick X Tsui

Spyder IDE抱怨无法检测未定义的名称

  •  3
  • Nick X Tsui  · 技术社区  · 7 年前

    使用Windows10和运行python 3.5的spyder ide。我看到下面的 __init__.py 文件抱怨 unable to detect undefined names :

    enter image description here

    然而,似乎 _初始版本 文件与所有其他文件位于同一文件夹中。

    enter image description here

    那为什么要抱怨呢?我试着去掉前面的前导点,但还是有点抱怨。请给我一些提示。

    2 回复  |  直到 7 年前
        1
  •  7
  •   Blender    7 年前

    您的IDE在抱怨,而不是Python。当你这样做的时候 from simple import * ,您导入 一切 暴露于 simple . 通常不建议这样做,因为它会污染全局命名空间,并且可能隐式地覆盖现有对象。

    您会得到一个警告而不是一个错误,因为这种行为并不总是坏的。拥有 __init__.py 从子模块公开对象的文件是一种非常常见的模式。只要你了解潜在的风险,就不要发出警告:

    from .input import *  # NOQA
    

    如果模块不公开许多对象,只需按名称导入:

    from .input import A, B, C
    

    这有利于让Python代码分析工具更好地理解您的代码并警告您潜在的问题。

        2
  •  0
  •   Joe Llerena    6 年前

    我也有同样的问题, 星号。 我找到了调用它们的模块,如 搅拌机

    它被解决了

    One

    按模块名称更改星号

    Two

    查找有冲突的名称

    Three

    当你把它们加起来,错误就会消失

    Four

    谢谢你的评论,他们帮助我解决了我遇到的问题。