如果不加self,表示是类的一个属性(可以通过“类名.变量名”的方式引用),加了表示是类的实例的一个属性(可以通过“实例名.变量名”的方式引用)。
比如:
In [17]: class Test(object):
....: val = 1
....:
....: def __init__(self):
....: self.val = 2
....:
....:
In [18]: test = Test()
In [19]: test.val
Out[19]: 2
In [20]: Test.val
Out[20]: 1
在类中,self只能在函数中使用,表示的是实例属性,就是每个实例可以设置不同的值,而不相互影响。
如果在类级别使用没有self的属性,是类属性,一般作为全局变量来用的。
事实上:就是一个是类属性 一个是对象属性 类和实例都可以访问到属性
网友评论