返回

Python __init__ 方法笔记

人工智能

Python的__init__()方法是一个特殊的函数,在类被实例化时自动调用,用于初始化对象。该方法通常用于在对象创建时设置属性或执行其他操作。

1. init 方法的用法

init()方法的语法如下:

def __init__(self, *args, **kwargs):
    # 初始化代码

其中:

  • self 是一个特殊的参数,指向当前对象。
  • *args 是一个可变长参数元组,可以接收任意数量的位置参数。
  • **kwargs 是一个可变长参数字典,可以接收任意数量的关键字参数。

2. init 方法的作用

init()方法主要用于以下几个方面:

  • 初始化对象属性:init()方法可以用来设置对象的属性值。例如,我们可以通过以下代码来创建一个名为Person的类,并在该类的__init__()方法中设置对象的nameage属性:
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