# id is an int and self.obj_dict is a dict
if id not in self.obj_dict:
我代码中的这一行给出了 pylint 错误。
path/to/file/file.py:103: [E1135(unsupported-membership-test), MyClass.set_ids] Value 'self.obj_dict' doesn't support membership test
我尝试用谷歌搜索这个错误,但找不到解决方案。有谁知道是什么原因造成的?
代码很大,所以我将把它简化为一个最小的例子:
在
file.py
我们有
class BaseClass(with_metaclass(ABCMeta, object):
@abstractmethod
def set_ids(args):
pass
def process(vals, ids):
self.obj_dict = {
id: vals[id]
for id in ids
}
@attr.s
class MyClass(BaseClass):
def set_ids(args):
if id not in self.obj_dict:
# do some stuff
您认为 self.obj_dict 是一个字典,但它不在导致此错误的实例中。 确保初始化值并检查为其赋值的每个地方,或者将值加载到字典中是否有字幕错误。