非序列的Python迭代

发布于 2021-01-29 16:08:54

我有这段代码可以创建笔记并添加到笔记本中。当我运行它时,我得到了非序列错误的迭代。

import datetime
class Note:
    def __init__(self, memo, tags):
        self.memo = memo
        self.tags = tags
        self.creation_date = datetime.date.today()

def __str__(self):
    return 'Memo={0}, Tag={1}'.format(self.memo, self.tags)


class NoteBook:
     def __init__(self):
        self.notes = []

     def add_note(self,memo,tags):
        self.notes.append(Note(memo,tags))

if __name__ == "__main__":
    firstnote = Note('This is my first memo','example')
    print(firstnote)
    Notes = NoteBook()
    Notes.add_note('Added thru notes','example-1')
    Notes.add_note('Added thru notes','example-2')
    for note in Notes:
        print(note.memo)

错误:

C:\ Python27 \ Basics \ OOP \ formytesting> python notebook.py  
Memo =这是我的第一个备忘录,Tag =示例  
追溯(最近一次通话):  
  在第27行的文件“ notebook.py”中   
    注意:  
TypeError:非序列迭代
关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您试图遍历对象本身,这将返回错误。在这种情况下,您想遍历对象内部的列表Notes.notes(这在命名上有些令人困惑,您可能希望通过对笔记本对象的实例使用其他名称来区分内部列表)。

    for note in Notes.notes:
        print(note.memo)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看