Life, half is memory, half is to continue.
Python中 __init__的通俗解释是什么?
By Vincent. @2022.8.1
Python中 __init__的通俗解释是什么?

1.OOP

Python 这门编程语言既能面向过程,又能面向对象(Object)。而__init__是面向对象编程(OOP)的关键概念。

2. class & object

类(class)是一个“模板”,它包含一类事物共有的属性和方法。根据类这个抽象的模板,可以创造出无数个具体的对象(object)。

类是对象的模板,对象是类的实例。

这里的属性(attribute)指事物的特征,必须是名词。以汽车为例,其属性有品牌、颜色等。

这里的方法(method)指事物能够做出的动作,必须是动词。还以汽车为例,其方法有开车、刹车等。

根据汽车这个模板,我们可以创建出无数个具体对象,比如白色的宝马、黑色的奔驰、蓝色的比亚迪,这些具体的对象都能做出两种动作(两个方法)——开车和刹车。

我们来创建一个 Car 类:

# 创建类
# 属性有品牌(brand)、颜色(color)
# 方法有开车(start)、刹车(stop)

class Car:
    # 初始化属性
    def __init__(self, brand, color):
        self.brand = brand
        self.color = color

    # 定义方法一
    def start(self):
        return "Started"

    # 定义方法二
    def stop(self):
        return "Stopped"

上述代码中,出现了 __init__ 和 self,我逐一解释。

3. __init__

在 Python 中,__init__ 也叫“构造器(Constructor)”。

__init__ 即“initialize(初始化)”,它的作用是将类的属性分配给每个对象

我们根据 Car 类,创建 a、b 两个对象:

# 创建类
class Car:
    def __init__(self, brand, color):
        self.brand = brand
        self.color = color

    def start(self):
        return "Started"

    def stop(self):
        return "Stopped"

# 根据类创建对象
a = Car("BMW", "White")
b = Car("Benz", "Black")

# 每个对象都具有类的属性
print(a.brand)
print(a.color)
print(b.brand)
print(b.color)

输出结果:

4. self

self 在定义类的方法时必须存在。

self 的作用是将类的方法分配给每个对象

self 即“itself”,指类本身。

#定义类
class Car:
    def __init__(self, brand, color):
        self.brand = brand
        self.color = color

    def start(self):
        return "Started"

    def stop(self):
        return "Stopped"

# 根据类创建对象
a = Car("BMW", "White")

# 调用对象的方法
print(a.start())

输出结果:

上述代码中 a.start() 其实调用了类的方法 Car.start()。

扫码分享收藏
扫码分享收藏