当我得到int对象不可迭代时该怎么办?

时间:2019-11-15 15:28:16

标签: python

 def filter_list_by_value(self):
        self.get_user_input("Insert number to filter by: ")
        value = int(self.__user_input)
        print(value)
        new_list = list()
        try:
            self.history_stack.append(str(self.expense_list))
            for item in self.expense_list:
                try:
                    new_list.append(list(filter(lambda val: val > value, item.expense)))
                except TypeError as te:
                    print("type error" , te)
            self.expense_list = new_list
        except TypeError as te:
            print("Type error!", te)

班级费用:     def init (自身,费用:整数,类别:str,日期:整数):         自我.__费用=费用         self .__ category =类别         self .__ day = day

def __repr__(self):
    return str(self)


def __str__(self):
    return str(self.__dict__)


@property
def day(self):
    return self.__day

@day.setter
def day(self, day):
    self.__day = day

@property
def expense(self):
    return self.__expense

@expense.setter
def expense(self, expense):
    self.__expense = expense

@property
def category(self):
    return self.__category

@category.setter
def category(self, category):
    self.__category = category

我一直在获取'int'对象是不可迭代的。我该怎么办? fee_list是一个类制成的对象。

1 个答案:

答案 0 :(得分:0)

根据:

new_list = list()
...
new_list.append(list(...))
...
self.expense_list = new_list

self.expense_list必须是列表列表。但是,通过:

for item in self.expense_list:
    ...
    item.expense

不能,因为列表没有费用属性。请验证所有数据类型是否正确。