返回
Python __init__ 方法笔记
人工智能
2024-01-19 06:53:41
Python的__init__()方法是一个特殊的函数,在类被实例化时自动调用,用于初始化对象。该方法通常用于在对象创建时设置属性或执行其他操作。
1. init 方法的用法
init()方法的语法如下:
def __init__(self, *args, **kwargs):
# 初始化代码
其中:
self
是一个特殊的参数,指向当前对象。*args
是一个可变长参数元组,可以接收任意数量的位置参数。**kwargs
是一个可变长参数字典,可以接收任意数量的关键字参数。
2. init 方法的作用
init()方法主要用于以下几个方面:
- 初始化对象属性:init()方法可以用来设置对象的属性值。例如,我们可以通过以下代码来创建一个名为
Person
的类,并在该类的__init__()方法中设置对象的name
和age
属性:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
- 执行其他操作:init()方法还可以用来执行其他操作,例如打开文件、连接数据库或初始化其他对象。例如,我们可以通过以下代码来创建一个名为
FileHandler
的类,并在该类的__init__()方法中打开一个文件:
class FileHandler:
def __init__(self, filename):
self.file = open(filename, 'w')
3. 子类需要自动调用父类的方法
在子类中,如果需要自动调用父类的__init__()方法,有以下几种方法:
- 不重写__init__()方法:如果子类不重写__init__()方法,那么在实例化子类时,会自动调用父类的__init__()方法。例如,以下代码演示了如何创建一个名为
Student
的子类,该子类继承自Person
类:
class Student(Person):
pass
实例化Student
类时,会自动调用Person
类的__init__()方法:
student = Student('John', 20)
print(student.name) # 输出:John
print(student.age) # 输出:20
- 在子类的__init__()方法中显式调用父类的__init__()方法:如果子类需要在__init__()方法中显式调用父类的__init__()方法,可以使用
super()
函数。例如,以下代码演示了如何在Student
类的__init__()方法中显式调用Person
类的__init__()方法:
class Student(Person):
def __init__(self, name, age, school):
super().__init__(name, age)
self.school = school
实例化Student
类时,会先调用Person
类的__init__()方法,然后再调用Student
类的__init__()方法:
student = Student('John', 20, 'Harvard University')
print(student.name) # 输出:John
print(student.age) # 输出:20
print(student.school) # 输出:Harvard University