用setattr设置的属性在PyCharm中显示为未解析的引用

ale*_*dro 5 pycharm

我有一个使用setattr内置动态定义几个属性的类。但是,PyCharm将这些属性的所有使用显示为未解析的引用。有没有办法(通过代码或PyCharm设置)来帮助PyCharm解决这些属性?

Gio*_*ano 6

不幸的是你不能。

从我的角度来看,您可以忽略对动态属性执行 Alt + Enter 的警告,然后选择“忽略未解析的引用”。

或者,如果您不想为所有类属性执行此操作,则可以在类文档字符串中添加 @DynamicAttrs。

这里有一个例子:

class YourClassWithSeveralAttributes(object):
    """@DynamicAttrs""" # <-- here

    def __init__(self):
        setattr(self, 'foo', 1)
        setattr(self, 'bar', 2)
        setattr(self, 'foo1', 11)
        setattr(self, 'bar2', 22)
Run Code Online (Sandbox Code Playgroud)

请记住,以前的任何解决方案都不会使 PyCharm 能够识别您的动态属性,并且这些属性将无法使用自动完成功能。它们只是忽略警告的方法。

  • `@DynamicAttrs` 太棒了!如果我将它添加到调用“setattr”的父类中的文档字符串中,它也可以工作。我可以忍受这样的缺点:在这个类和派生类中,“未解析的引用”警告不活动。 (2认同)

小智 0

尝试File--> Invalidate Caches / Restart-->Invalidate and Restart