如何解决非序列的Python迭代
您试图遍历对象本身,这将返回错误。在这种情况下,您想遍历对象内部的列表Notes.notes
(这在命名上有些令人困惑,您可能希望通过对笔记本对象的实例使用其他名称来区分内部列表)。
for note in Notes.notes:
print(note.memo)
解决方法
我有这段代码可以创建笔记并添加到笔记本中。当我运行它时,我得到了非序列错误的迭代。
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,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:非序列迭代
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。