Python中 __init__的通俗解释是什么?
By Vincent. @2022.8.1

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()。