python for循环没有按应有的方式工作

python for循环没有按应有的方式工作,python,Python,我已经创建了3个note对象,并使用add_note()函数将它们添加到notebook对象中,notebook对象是一个列表。如果我使用print(notebook1)打印笔记本,它会在列表中正确显示3项。当我尝试使用print()函数,该函数将遍历列表并打印每个音符的str时,我只得到第一个音符,即“我爱化学”,而没有其他两个音符为什么会这样 class Note: note_number = 1 def __init__(self, title="", memo="",

我已经创建了3个note对象,并使用add_note()函数将它们添加到notebook对象中,notebook对象是一个列表。如果我使用print(notebook1)打印笔记本,它会在列表中正确显示3项。当我尝试使用print()函数,该函数将遍历列表并打印每个音符的str时,我只得到第一个音符,即“我爱化学”,而没有其他两个音符为什么会这样

class Note:

    note_number = 1

    def __init__(self, title="", memo="", id="", tag=""):

        self.memo = memo
        self.id = id
        self.number= Note.note_number
        Note.note_number += 1

    def __str__(self):

        return self.memo

class NoteBook:


    def __init__(self):
        self.note_book = []

    def add_note(self, *args):
            self.note_book.extend(args)

    def print(self):
        for note in self.note_book:
            print(note)

n1 = Note(memo = "I love chemistry")
n2 = Note("I hate chemistry")
n3 = Note("Inorganic")
notebook1 = NoteBook()
notebook1.add_note(n1, n2, n3)
notebook1.print()

您的
\uuu str\uuu
返回
备忘录。因此,您应该使用
备忘录
初始化所有笔记:

I love chemistry
通过使用
Note(“我讨厌化学”)
您只初始化了
Note
构造函数的第一个参数,即
标题
。也就是说,您可以做的最小更改是在构造函数中:

n1 = Note(memo="I love chemistry")
n2 = Note(memo="I hate chemistry")
n3 = Note(memo="Inorganic")

您的
\uuu str\uuu
返回
备忘录。因此,您应该使用
备忘录
初始化所有笔记:

I love chemistry
通过使用
Note(“我讨厌化学”)
您只初始化了
Note
构造函数的第一个参数,即
标题
。也就是说,您可以做的最小更改是在构造函数中:

n1 = Note(memo="I love chemistry")
n2 = Note(memo="I hate chemistry")
n3 = Note(memo="Inorganic")

如果您想让它打印备忘录-您应该创建带有备忘录的便笺:

更改:

def __init__(self, memo="", title="", id="", tag=""):
致:


如果您想让它打印备忘录-您应该创建带有备忘录的便笺:

更改:

def __init__(self, memo="", title="", id="", tag=""):
致:


它打印三个项目,但仅打印您已将
memo
设置为正确值的第一个项目

构造函数定义为:

n1 = Note(memo = "I love chemistry")
n2 = Note(memo = "I hate chemistry")
n3 = Note(memo = "Inorganic")
因此,第一个参数是
title
,您似乎没有对
title
进行任何操作

构建注释时:

def __init__(self, title="", memo="", id="", tag="") :
仅对于第一个,您明确声明
memo=

因此,如果调用该程序,则会得到以下结果:

n1 = Note(memo = "I love chemistry")
n2 = Note("I hate chemistry")
n3 = Note("Inorganic")

因此,两个空白行源自打印注释,其中
。note
等于空字符串。

它打印三个项目,但仅打印您已将
备注设置为正确值的第一个项目

构造函数定义为:

n1 = Note(memo = "I love chemistry")
n2 = Note(memo = "I hate chemistry")
n3 = Note(memo = "Inorganic")
因此,第一个参数是
title
,您似乎没有对
title
进行任何操作

构建注释时:

def __init__(self, title="", memo="", id="", tag="") :
仅对于第一个,您明确声明
memo=

因此,如果调用该程序,则会得到以下结果:

n1 = Note(memo = "I love chemistry")
n2 = Note("I hate chemistry")
n3 = Note("Inorganic")
因此,使用
.note
打印便笺时产生的两个空行等于空字符串。

其他两个便笺对象是否遗漏了“memo=”?其他两个便笺对象是否遗漏了“memo=”?