在类的继承关系中,对于子类,我们希望可以直接调用父类的__init__()来初始化父类中定义的属性。
super()可以用来获取当前类的父类,并且在通过super()返回对象调用方法时,不需要传递self。
class Person:
def __init__(self, name):
self._name = name
def work(self):
print('%s在工作!'%self.name)
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
class Student(Person):
def __init__(self, name, age):
super().__init__(name)#这个地方我们不需要传递self;Person.__init__(self, name)也可以得出同样的结果,但是我们不能这么写。
self._age = age
@property#getter()方法
def age(self):
return self._age
@age.setter#setter()方法 ~属性.setter
def age(self, age):
self._age = age
#测试:
p = Student('Tom', 12)
p.work()
######################################