Python TypeError:参数类型为';项目';这是不可容忍的
所以我创建了一个对象“Item”,它包含一个列表中的列表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
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@Shariself.\u项目
很可能不是你想象的那样。它可能只是一个项目,而不是其中的一个列表。