让 IDEA 检测装饰器中未解析的属性 class

Make IDEA detect unresolved attributes in a decorated class

我有一个装饰器 returns 它的参数不变,即 Deco(cls) == cls。 IDEA(最新版本)无法在装饰 class.

上报告未解析的属性

我想我必须为 Deco 提供一些巧妙的类型提示。那看起来怎么样?

class A:
    def foo(self):
        print(self)


A().foo()
A().no_such_thing()  # red line, correct


class Deco:
    def __call__(self, cls):
        return cls


@Deco()
class B:
    def foo(self):
        print(self)


B().foo()
B().no_such_thing()  # no red line, WRONG

这是一个已知问题 https://youtrack.jetbrains.com/issue/PY-30190,请随意投票并发表评论。