在我们写class类型时,就不可避免的用到self。刚开始学的时候,没有特别理解,就在__init__初始化的时候固定的写上。现在逐渐弄懂一些了。
首先,self只在class中才会出现,定义函数时则不必要。
然后,"self"不需要一定是self这个名称,也可以叫别的名字,只不过约定成俗写为self,如下也可以:
代码语言:javascript复制class Person:
def __init__(this, name, age):
this.name = name
this.age = age
a = Person('LiHua', 24)
print(a.name, a.age)
对于self的意义,首先要说一下__init__初始化函数,每次实例化的时候,都会调用这个函数:
代码语言:javascript复制class Test:
def __init__(self):
print("YES!")
a = Test()
直接输出了'YES'。
我们往往用这个初始化函数赋值,这样可以在整个class中直接调用赋值的变量。比如:
代码语言:javascript复制class Test:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print('Hello, my name is {}, my age is {}.'.format(self.name, self.age))
a = Test('LiHua', 24)
a.introduce()
b = Test('Zhang Da', 26)
b.introduce()
输出: Hello, my name is LiHua, my age is 24. Hello, my name is Zhang Da, my age is 26.
对于self,我个人的理解就是可以更方便的赋一个在这个class里都可以用的“全局变量”值。