python语法基础---__slots__、@property、多重继承

slots
class student(object):
slots = (‘name’,‘age’) #限制student类实例的属性,最多只能是name和age

s=student() #实例化s
s.name=‘micle’ #为s实例添加name属性,并赋值
s.age=15
print(s.age, s.name) #打印s实例的age和name属性值

class stu_2(student): #stu2继承student类
pass #pass必须加,类定义内容无,必须加pass
a=stu_2()
a.score=90 #给a实例添加score属性并赋值,继承类并不会继承__slot__限制
print(a.score) #打印a的score属性值

@property #自带的定义好的装饰器,可以把类中的方法转变为属性,@property下的方法中变量只能是self一个,其修饰下的方法的调用方式也变成了属性的调用方式,其他方法的调用方式是函数的调用方式
一个错误的示范:
python语法基础---__slots__、@property、多重继承
这是正确的示范
#除了self变量,也可以是其他变量,但只能是一个
python语法基础---__slots__、@property、多重继承
关于@property的补充:如何在所谓的定义只读属性下改变该只读属性值
python语法基础---__slots__、@property、多重继承
下面是只读模式有效的实例:
python语法基础---__slots__、@property、多重继承
多重继承:MixIn表示添加的功能,但实际上任然是用类的方式定义的
python语法基础---__slots__、@property、多重继承