Python 中的 self 关键字

Muhammad Waiz Khan 2021年2月28日
Python 中的 self 关键字

本教程将讲解 Python 中 self 关键字的用途和用法。在面向对象编程中,我们有类,每个类都有各种属性和方法。每当创建一个类的对象或实例时,都会调用构造函数(Python 中的 __init__() 方法)来初始化实例的属性。

在创建一个类的实例时,我们需要将实例的属性与参数和其他变量区分开来或指定。而这时我们就需要用 self 关键字来指定我们要把值传递给实例属性,而不是传递给本地的同名变量或参数。

假设,对于 car 类,我们将参数 color 传递给 __init__() 方法来初始化 car 类的 color 属性,我们会将实例的 color 属性指定为 self.color,这说明 car 类有一个属性 color,我们将值传递给该属性。

同样,我们也可以使用 self 关键字调用类的实例方法,比如 car 类的 self.start() 方法。所以简而言之,我们可以说 self 关键字允许用户指定和访问类的实例的属性和方法。

Python 中 self 关键字的使用和示例代码

现在,让我们通过示例代码来看看 Python 中如何使用 self 关键字来指定一个实例的方法和属性。

下面给出的第一段示例代码演示了在 __init__() 方法中如何使用 self 关键字来初始化被初始化的实例的属性。我们不需要在初始化之前声明或创建变量,也不需要给变量赋值,这样我们就可以用下面的方式初始化实例的属性。

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color


mycar = car("model XYZ", "red")
print(mycar.model)
print(mycar.color)

输出:

model XYZ
red

如上所示,在创建一个新的类的实例时,会自动调用 __init__() 方法,它的属性会被初始化。self 需要作为该方法的参数来访问实例的方法和属性。

下面的示例代码演示了如何在 Python 中使用 self 关键字来调用其他类方法中的实例/类方法。

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color

        self.start()

    def start(self):

        print(self.model + ", has started!")


mycar = car("model XYZ", "red")

输出:

model XYZ, has started!

和上面的示例代码一样,我们可以使用 self 关键字来调用类方法,并通过传递类的实例作为 self 参数来访问任何类方法中的属性。

相关文章 - Python Keyword