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
参数来访问任何类方法中的属性。