1. 直接写类名调用: parent_class.parent_attribute(self)
- class Animal():
- def __init__(self, name):
- self.name = name
- def say_name(self):
- print(self.name)
- class Dog(Animal):
- def __init__(self, name):
- Animal.__init__(self, name)
- def say_name(self):
- Animal.say_name(self)
- dog = Dog('小虎')
- dog.say_name() # 打印'小虎'
扩展:实例对象和类对象调用实例函数。
- class Animal():
- def __init__(self, name):
- self.name = name
- def say_name(self):
- print(self.name)
- animal = Animal('nada')
- animal.say_name() # 实例对象调用实例函数,输出'nada'
- Animal.say_name(animal) # 类对象调用实例函数,需要传入一个对象实例作为参数,输出'nada'
2. 用 super(type, obj).method(arg) 方法调用:super(child_class, child_object).parent_attribute(arg) 【不需要写 self】
- class Animal(object):
- def __init__(self, name):
- super(Animal, self).__init__()
- self.name = name
- def say_name(self):
- print(self.name)
- class Dog(Animal):
- def __init__(self, name):
- super(Dog, self).__init__(name)
- def say_name(self):
- super(Dog, self).say_name()
- dog = Dog('小虎')
- dog.say_name() # 输出'小虎'