Python TypeError:参数类型为';项目';这是不可容忍的

Python TypeError:参数类型为';项目';这是不可容忍的,python,Python,所以我创建了一个对象“Item”,它包含一个列表中的列表 for item in stock_list: item_list = item.split(",") self.__items += [Item(item_list[0], item_list[1], float(item_list[2]), int(item_list[3]))] 当尝试查找与代码(索引0)匹配的项时,我尝试创建一个新函数来返回此项 def find_i

所以我创建了一个对象“Item”,它包含一个列表中的列表

        for item in stock_list:
            item_list = item.split(",")
            self.__items += [Item(item_list[0], item_list[1], float(item_list[2]), int(item_list[3]))]
当尝试查找与代码(索引0)匹配的项时,我尝试创建一个新函数来返回此项

def find_item(self, code):
    for item in self.__items:
        if code in item:
            print(item)
当我运行这个程序时,它会给我一个
TypeError:type'Item'的参数是不可编辑的
error,我不知道为什么?
我应该创建一个返回私有self的
getCode()
函数吗?或者这不会有什么不同吗?

我想这个问题是一致的-

if code in item:
对于自定义类,不能在C中执行-
x
,其中C是自定义类的对象(实例),除非自定义类具有方法。范例-

>>> class CC:
...     pass
...
>>> class CB:
...     def __contains__(self, item):
...             if item == 1:
...                     return True
...             else:
...                     return False
...
>>> cco = CC()
>>> cbo = CB()
>>> 1 in cco
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument of type 'CC' is not iterable
>>> 1 in cbo
True
>>> 2 in cbo
False
>>类别CC:
...     通过
...
>>>CB类:
...     定义包含(自身,项目):
...             如果项目==1:
...                     返回真值
...             其他:
...                     返回错误
...
>>>cco=CC()
>>>cbo=CB()
>>>1名首席财务官
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:类型为“CC”的参数不可编辑
>>>国会预算办公室1名
真的
>>>国会预算办公室2名
假的

但鉴于此,
\uuuuuu contains\uuuuuu()
基本上用于成员身份测试,其中一个对象可以包含多个元素(以list/dict为例)


如果您试图比较,则代码等于其他变量,如
self.\uu code
。然后,您可能需要提供某种返回
\uuuuuu code
的方法(或属性),如果
\uuuu code
又是某种列表之类的,并且您试图检查
项是否在
self中。\uuuuu code
,您可以覆盖
\uuuu包含的
,如上所示。

代码是什么,它的类型是什么?您想匹配什么?您可能必须在项目中添加一个方法
\uu iter\uu()
class@Shari
self.\u项目
很可能不是你想象的那样。它可能只是一个
项目,而不是其中的一个列表。