关于未解析的属性引用的Pycharm可视警告

时间:2015-01-27 13:46:08

标签: python pycharm

我有两个看起来像这样的类:

class BaseClass(object):

    def the_dct(self):
        return self.THE_DCT


class Kid(BaseClass):

    THE_DCT = {'vars': 'values'}


# Code i ll be running
inst = Kid()
print(inst.the_dct)

继承必须是这样的;包含THE_DCT的第二个类和包含def the_dct的第一个类。

它工作正常,但我的问题是我在Pycharm(未解析的属性引用)中收到警告,关于THE_DCT中的BaseClass

  • 是否有理由警告我(为什么我应该避免它)?
  • 我应该做些什么不同的事情?

1 个答案:

答案 0 :(得分:12)

BaseClass中你引用了self.THE_DCT,但是当PyCharm查看这个类时,它会看到THE_DCT不存在。

假设您将此视为抽象类,PyCharm并不知道这是您的意图。它所看到的只是一个访问属性的类,它不存在,因此它会显示警告。

虽然你的代码运行得很好(只要你永远不会实例化BaseClass),你应该把它改为:

class BaseClass(object):
    THE_DCT = {}

    def the_dct(self):
        return self.THE_DCT