我试图更好地理解继承。在下面的代码中,当我尝试打印friend.salary
时,它会抛出一个AttributeError
。 WorkingStudent
是不是继承了Student
类的所有方法?了解继承
class Student:
def __init__(self,name,school):
self.name = name
self.school = school
self.marks = []
def average(self):
return sum(self.marks)/len(self.marks)
def friend(self,friend_name):
return Student(friend_name, self.school)
anna = Student("Anna","MIT")
friend = anna.friend("Motilal")
#print (friend.name)
#print (friend.school)
class WorkingStudent(Student):
def __init__(self,name,school,salary):
super().__init__(self,name,school)
self.salary = salary
anna = WorkingStudent("Anna","SXS",25000)
anna.friend("Greg")
anna.marks.append(50)
print friend.salary
您的缩进是否正确?那'anna = WorkingStudent(...)'线真的应该在'__init__'里面吗? – BrenBarn
是的,它的缩进效果很好。我认为这是正确的缩进。 – learner
[Python派生类和基类属性?]的可能重复?(https://stackoverflow.com/questions/6396452/python-derived-class-and-base-class-attributes) –