无法解压缩不可迭代的int对象

时间:2018-11-20 00:28:08

标签: python spyder

我需要在类中的所有7个参数上使用__getitem__,但是__getitem__不允许我这样做,所以我尝试使用tuple,但是我仍然遇到此错误:

TypeError: cannot unpack non-iterable int object

我该怎么办?

def __getitem__(self, key):
    name,author,category,Isbn_number,printing_house,date,number_of_order = key
    return (self.name,self.author,self.category,self.Isbn_number,self.printing_house,self.date,self.number_of_order)

1 个答案:

答案 0 :(得分:0)

要创建一个 getitem ,以给定与该成员名称相同的键返回每个成员变量的内容,您可以让该类将信息存储在dict中,然后让您的get_item从该字典返回。例如:

def __init__(self, name = 'Jud', author='Jill', category='YA'):
    self.elements = {'name':name,'author':author,'category':category}

def __getitem__(self, key):
    return self.elements[key]

然后使用该类的实例,您应该能够执行以下操作:

aBook['name']
aBook['author']