为什么 Pylint 在使用元类定义的属性时出错?

Why does Pylint error on metaclass-defined attribute usage?

我在我的代码中使用了一个元类,并且该代码有效。 (使用元类,它在对象创建时将属性 test_attr 设置为 "Success!"。)但是,当我在此代码上 运行 pylint 时,它在 [=14 中显示错误=], 表示 test_attr 未定义。

class MyMeta(type):
    def __new__(mcs, name, bases, attrs):
        attrs["test_attr"] = "Success!"
        return super().__new__(mcs, name, bases, attrs)


class Test(metaclass=MyMeta):
    def test(self):
        return self.test_attr

我该怎么做才能满足pylint?有没有配置选项来解决这个问题?我的代码有什么我应该修复的吗?

我猜 pylint 根本不理解这种 "magic" - 你为什么要这样做?

您可以设置 generated-membersignored-classes(请参阅 docs)以告知 pylint。