首先self必须跟python中的类class 一起使用。
在Python中,self
是一个在类方法中使用的约定名称,用来代表类的实例本身。实例是指类的具体对象如下面代码的p,后续调用self
可以访问类的属性和方法(类中的函数),使得我们能够在类的不同方法中共享数据。理解的关键在于类和实例。
以下是self
的一些关键作用:
-
访问实例属性和方法:在类中定义的属性和方法可以通过
self
来访问。例如,定义一个类属性后,可以用self.attribute
的方式在类的其他方法中引用它。 -
区别实例的局部变量和类属性:使用
self
可以将实例属性和方法绑定到特定的对象实例上,这样不同的对象实例就不会相互干扰。没有self
,方法中的变量只是局部变量,不能在实例之间共享。 -
表示实例本身:当你创建一个类的实例并调用其方法时,Python会自动将该实例作为第一个参数传递给方法,也就是
self
。因此,不需要手动传递实例,Python会自动处理。 -
便于在不同方法间共享数据:通过
self
定义的属性和方法可以在该类的其他方法中被调用,使得类的方法之间能够共享和传递数据。
class Person:
def __init__(self, name, age):
self.name = name # 实例属性
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
# 创建类的实例
p = Person("Alice", 30)
p.greet() # 输出: Hello, my name is Alice and I am 30 years old.
# 输出: Hello, my name is Alice and I am 30 years old.
self的必要性:如果没有self
,比如写成 name = name
,那么 name
只是一个局部变量,在方法执行完后就消失了,无法在类的其他方法中访问。