__init__方法的功能?在什么时候执行?__str__方法的功能?在什么时候执行
时间: 2023-08-20 19:56:08 浏览: 46
`__init__`方法是一个特殊的方法,用于在创建对象时进行初始化操作。它的作用是设置对象的初始状态,给对象的属性赋予初始值。`__init__`方法在创建对象时自动执行。
例如,考虑以下示例代码:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
print("初始化学生对象")
# 创建一个学生对象
student = Student("Alice", 18)
```
在上述代码中,`__init__`方法接受两个参数 `name` 和 `age`,并通过 `self.name = name` 和 `self.age = age` 将参数值赋给对象的属性。当创建 `Student` 类的实例 `student` 时,会自动执行 `__init__` 方法,并输出 "初始化学生对象"。
`__str__`方法是另一个特殊的方法,用于返回一个对象的字符串表示形式。它的作用是让对象在被打印或转换为字符串时能够以人类可读的方式呈现。`__str__`方法在使用 `print` 函数或 `str()` 函数时自动执行。
下面是一个示例:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"学生姓名:{self.name},年龄:{self.age}"
# 创建一个学生对象
student = Student("Alice", 18)
# 打印学生对象
print(student) # 输出:学生姓名:Alice,年龄:18
```
在上述代码中,`__str__`方法返回了一个包含学生姓名和年龄的字符串。当我们使用 `print(student)` 打印学生对象时,会自动执行 `__str__` 方法,并输出学生的字符串表示形式。