Value [dict object] 不支持成员测试

问题描述 投票:0回答:1
# 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
python pylint
1个回答
0
投票

您认为 self.obj_dict 是一个字典,但它不在导致此错误的实例中。 确保初始化值并检查为其赋值的每个地方,或者将值加载到字典中是否有字幕错误。

© www.soinside.com 2019 - 2024. All rights reserved.