def take(self, add_item):
if self.__items < 8:
self.__items.pop(add_item)
else:
print("You already have the max items in your inventory,sorry")
这是我对我的程序唯一的问题,我正在试图弄清楚究竟是什么问题
Traceback (most recent call last):
File "C:\Python31\player.py", line 77, in <module>
main()
File "C:\Python31\player.py", line 32, in main
play.take(add_item)
File "C:\Python31\player.py", line 66, in take
if self.__items < 8:
TypeError: unorderable types: list() < int()
我正在试图找出为什么我一直收到此错误消息。我尝试更改代码并仍然收到相同的错误消息
答案 0 :(得分:2)
您的商品为list
,您无法与int
我认为你检查长度
给if len(self.__items) < 8 :
在程序中还有一件事就是将字符串发送到take方法并执行pop() 我认为它不可能。
我认为您要使用append(add_items)
答案 1 :(得分:0)
您需要使用len()
来获取列表中的元素数量
if len(self.__items) < 8:
答案 2 :(得分:0)
如果您打算将项目add_item
添加到列表中,则表示您使用了错误的功能。您应该使用append(add_item)
,而不是pop(add_item)
。
def take(self, add_item):
if len(self.__items) < 8:
self.__items.append(add_item)
else:
print("You already have the max items in your inventory,sorry")
This Python documentation解释了列表方法的作用。 pop
期待一个整数参数,这导致了您看到的错误。 pop
会从列表中删除一个元素。
正如其他人已经指出的那样,您还需要使用len(self.__items)
检查同一函数中列表的长度。