在Python中,self
不是类本身,而是类的实例对象本身。当你定义一个实例方法时,Python 会自动将调用该方法的实例对象作为第一个参数传递给这个方法,按照惯例,这个参数被命名为 self
。
这里有一个简单的例子来说明 self
的用途:
python复制代码
class MyClass:
def __init__(self, value):
self.value = value # 这里 self.value 指的是实例对象的 value 属性
def display_value(self):
print(self.value) # 这里 self 指的是调用 display_value 方法的实例对象
# 创建 MyClass 的一个实例
my_instance = MyClass(10)
# 调用实例方法
my_instance.display_value() # 输出: 10
在这个例子中:
-
MyClass
是一个类。 -
__init__
是一个特殊的方法(构造函数),用于初始化新创建的实例对象。 -
self.value
在__init__
方法中设置,它指的是调用该方法的实例对象的value
属性。 -
display_value
是一个实例方法,它使用self
参数来访问调用该方法的实例对象的value
属性。
当你调用 my_instance.display_value()
时,Python 会自动将 my_instance
作为 self
参数传递给 display_value
方法。因此,在 display_value
方法内部,self
指的是 my_instance
。
总结一下,self
是指向实例对象本身的引用,而不是类本身。类本身在Python中通常通过类名来引用,而在类方法中使用 cls
作为指向类本身的引用(通过 @classmethod
装饰器定义)。