为啥 Pylint 在元类定义的属性使用上出错?
Posted
技术标签:
【中文标题】为啥 Pylint 在元类定义的属性使用上出错?【英文标题】:Why does Pylint error on metaclass-defined attribute usage?为什么 Pylint 在元类定义的属性使用上出错? 【发布时间】:2016-10-06 07:37:25 【问题描述】:我在我的代码中使用了一个元类,并且代码有效。 (使用元类,它在对象创建时将属性test_attr
设置为"Success!"
。)但是,当我在此代码上运行pylint
时,它在Test.test
中显示错误,说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
?是否有解决此问题的配置选项?我的代码有什么需要修复的地方吗?
【问题讨论】:
【参考方案1】:我猜 pylint 根本不懂这种“魔法”——你为什么要这样做?
您可以设置generated-members
或ignored-classes
(参见docs)来告诉pylint。
【讨论】:
以上是关于为啥 Pylint 在元类定义的属性使用上出错?的主要内容,如果未能解决你的问题,请参考以下文章