python函数重写
时间: 2025-01-07 07:46:20 浏览: 2
### Python 中重写函数
在面向对象编程中,继承允许创建一个新的类,该新类可以从现有的类派生并获得现有类的功能。子类可以修改父类的行为通过重写(覆盖)父类的方法。
当涉及到Python中的方法重写时,这意味着可以在子类中重新定义来自父类的方法。这不仅限于改变行为;还可以扩展原始功能[^2]。
#### 定义基类与派生类
为了展示这一过程,先定义一个简单的`Animal`基类及其子类`Dog`:
```python
class Animal:
def sound(self):
return "Some generic animal noise"
class Dog(Animal):
# 重写了sound方法
def sound(self):
return "Woof!"
```
在这个例子中,`Dog`类从`Animal`类继承而来,并提供了自己版本的`sounds()`方法。每当调用`Dog`实例上的这个方法时,都会执行新的实现而不是旧的那个[^3]。
#### 使用super()保留原有逻辑
有时可能希望在不完全替换的情况下增强或调整父类的方法。这时就可以借助内置函数`super()`来达到目的。下面的例子展示了如何做到这一点:
```python
class EnhancedDog(Dog):
def sound(self):
original_sound = super().sound()
enhanced_sound = f"{original_sound}, but louder and more enthusiastic!!!"
return enhanced_sound
```
这里,在`EnhancedDog.sound()`里先是获取了父级(`Dog`)的声音字符串,接着对其进行了加工处理再返回给用户。
阅读全文