python 重写构造方法
时间: 2023-10-13 14:29:10 浏览: 136
在 Python 中,可以通过重写类的构造方法 `__init__()` 来实现自定义对象初始化的过程。构造方法在创建类的实例时自动调用,用于对实例属性进行初始化。
下面是一个示例代码:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print("Hello, my name is {} and I am {} years old.".format(self.name, self.age))
```
在这个示例中,`Person` 类有一个构造方法 `__init__()`,它接受两个参数 `name` 和 `age`,并将它们分别赋值给实例属性 `self.name` 和 `self.age`。
如果我们想要在构造方法中添加其他逻辑,比如对参数进行校验、设置默认值等,可以重写 `__init__()` 方法。例如,下面的示例中重写了 `Person` 类的构造方法,当传入的参数 `age` 小于 0 时,将其设置为默认值 0:
```python
class Person:
def __init__(self, name, age):
self.name = name
if age < 0:
self.age = 0
else:
self.age = age
def say_hello(self):
print("Hello, my name is {} and I am {} years old.".format(self.name, self.age))
```
在这个示例中,我们通过判断参数 `age` 的值来设置实例属性 `self.age` 的值。如果 `age` 小于 0,就将其设置为默认值 0。这样,在创建 `Person` 对象时,即使传入的参数 `age` 为负数,也不会抛出异常,而是会被自动设置为 0。
阅读全文