通过方法将类实例附加到另一个类的列表变量

2024-06-16 15:13:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个Band类和一个Musician类。我正在尝试将Musician添加到Band。我使用的是python2.7.6。在

class Band(object):
    def __init__(self):
        self.members = []
    def hire_musician(self,member):
        self.members.append(member)
        print self.members


class Musician(object):
    def __init__(self, sounds,isDrummer):
        self.sounds = sounds
        self.isDrummer = isDrummer

    def solo(self, length):
        for i in range(length):
            print self.sounds[i % len(self.sounds)],
        print ""

class Drummer(Musician):
    def __init__(self):
        super(Drummer, self).__init__(["Hi", "Hat"],True)


Jingle = Band()
ruben = Drummer()

Jingle.hire_musician(ruben)

我得到的错误是

^{pr2}$

我做错什么了?在


Tags: selfbandobjectinitdefclassmemberprint
1条回答
网友
1楼 · 发布于 2024-06-16 15:13:07

这里有一个简单的解决方案,只需添加一个name属性

class Band(object):
    def __init__(self):
        self.members = []
    def hire_musician(self,member):
        self.members.append(member)
        for member in self.members:
            print(member.name)

class Musician(object):
    def __init__(self, name, sounds,isDrummer):
        self.sounds = sounds
        self.isDrummer = isDrummer
        self.name = name

    def solo(self, length):
        for i in range(length):
            print(self.sounds[i % len(self.sounds)],)
            print('')

class Drummer(Musician):
    def __init__(self, name):
        super(Drummer, self).__init__(name, ["Hi", "Hat"],True)

Jingle = Band()
ruben = Drummer('ruben')
Jingle.hire_musician(ruben)

相关问题 更多 >