下面我将详细讲解Python重写父类的三种方法小结。
一、继承父类并重写
这种方法就是我们平时最常用到的方法了,我们通过继承父类,在子类中重写父类的方法,来实现自己想要的功能。
示例代码:
class Animal:
def __init__(self, name):
self.name = name
def run(self):
print(self.name + ' is running')
class Dog(Animal):
def __init__(self, name):
super().__init__(name)
def run(self):
print(self.name + ' is running like a dog')
在这个例子中,我们定义了一个Animal类和一个Dog类,Dog类继承了Animal类,并重写了Animal中的run方法。
当我们创建一个Dog对象时,我们就可以调用Dog的run方法,它会输出“name is running like a dog”。
二、super()调用父类方法
在子类中重写父类方法时,我们有时会需要调用父类方法。这时我们可以用super()来实现。
示例代码:
class Person:
def __init__(self, name):
self.name = name
def speak(self):
print('I am a person.')
class Student(Person):
def __init__(self, name, grade):
super().__init__(name)
self.grade = grade
def speak(self):
super().speak()
print('I am a student.')
s1 = Student('Tom', 3)
s1.speak()
在这个例子中,我们定义了一个Person类和一个Student类,Student类继承了Person类,并重写了Person中的speak方法。在Student中的speak方法中,我们调用了父类的speak方法,使得输出变成了“I am a person. I am a student.”。
三、使用别名
使用别名是一种比较简单的方式,就是我们在子类中重新定义一个与父类同名的方法,然后在该方法中调用父类原有的方法。
示例代码:
class A:
def foo(self):
print('A.foo')
class B(A):
def foo(self):
print('B.foo')
A.foo(self)
b = B()
b.foo()
在这个例子中,B类继承了A类,并重新定义了一个叫做foo的方法,在该方法中我们调用了父类的foo方法,从而实现了对父类方法的重写。
这就是Python重写父类的三种方法小结,希望可以对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python重写父类的三种方法小结 - Python技术站