python中的类属性是定义在class内部的,在def外面。
类属性有两种,一种是int、string等不可改变的数据类型,另外一种就是list、dict等可以改变的类型
下面介绍一个实例,区分两种类型的不同。
类属性记录实例的个数
class MyClass:
counter = 0 # 类属性,不可改变类型
tricks=[] #类属性,可以改变类型
def __init__(self,realpart,imagpart):
self.r=realpart
self.i=imagpart #r和i是实例属性
MyClass.counter+=1 #对类变形进行引用和操作,每生成一个实例,则增加1
self.tricks.append('n')#不可变类型的操作方式
def show(self):
return self.r,self.i
def add_trick(self,trick):
# self.tricks.append(trick)
pass
if __name__=='__main__':
test=MyClass(2,3)
test1=MyClass(3,2)
test.add_trick('hello')
test1.add_trick('snow')
print(test.counter)
print(test.tricks)
2
['n', 'n']
可以看出,如果类属性是不可改变的类型,那么一定要通过如下方式进行引用:
MyClass.counter+=1#类名.属性
如果是可以改变的类型,那么用下面方式:
self.tricks.append('n')#self.类属性.方法