【问题标题】:Why Pylint says numpy.random does not have 'normal' member since it does?为什么 Pylint 说 numpy.random 没有“正常”成员,因为它有?
【发布时间】:2017-08-01 18:22:24
【问题描述】:

此代码可以运行,但从 vscode 得到错误符号。

【问题讨论】:

    标签: python visual-studio-code pylint


    【解决方案1】:

    Pylint 是一个静态检查器,但 NumPy 会动态导入子模块,例如 random。 这是numpy/__init__.py的相关部分:

    from . import random
    # skipped lines
    __all__.extend(['linalg', 'fft', 'random', 'ctypeslib', 'ma'])
    

    numpy/random.__init__.py 你可以找到这行:

    from .info import __doc__, __all__
    

    进一步关注此轨道numpy/random/info.py 包含:

    __all__ = [
        # skipped lines
        'normal',
        # skipped lines
    ]
    

    __init__.py 在首次导入 numpy 期间执行。 列表__all__ 包含numpy 公开的名称。 此列表在运行时扩展,因此 PyLint 无法真正静态检查。

    different ways to turn the check of NumPy members off

    【讨论】:

      猜你喜欢
      • 2019-03-11
      • 2018-11-07
      • 1970-01-01
      相关资源
      最近更新 更多