我在以下示例代码中有关于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()
答案 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()
方法一样。