在python中使用另一个类中的一个类中的一个方法

时间:2015-08-04 07:10:19

标签: python class

我在以下示例代码中有关于python类的问题。为什么我可以在第二个类 class2 的方法get_pit()中使用第一类 class1 中的方法get_pitch()。这里两个类之间似乎没有任何继承或委派的迹象。换句话说,我的第二个类 class2 是如何从 class1 中知道这个方法get_pitch()的存在。

let = ('a', 'b', 'c')
pit = ('1', '2', '3')

class class1:  
    def __init__(self, letter, pitch):  
        if letter in let and pitch in pit:
            self.letter = letter
            self.pitch = pitch
        else:
            self.letter = None
            self.pitch = None
            print 'Invalid input: ', letter, pitch
    def get_letter(self):  
        return self.letter  
    def get_pitch(self):
        return self.pitch

class class2:
    def __init__(self):
        self.group = []

    def add_card(self, card):
        self.group.append(card)

    def get_pit(self):
        for i in range(0, len(self.group)):
            return self.group[i].get_pitch()

test = class2()
a1 = class1('a', '3')
test.add_card(a1)
print test.get_pit()

1 个答案:

答案 0 :(得分:0)

class1列表中有self.group实例。你只是在那些实例上调用方法。

您使用test.add_card()方法添加了实例,这是您创建的class2实例上的一种方法:

test = class2()
a1 = class1('a', '3')
test.add_card(a1)

add_card方法将其附加到self.group列表:

def add_card(self, card):
    self.group.append(card)

所以当你循环遍历列表时,你访问同一个实例,并且可以调用该实例上的方法,就像调用class1.add_card()方法一样。