__slots__ = ('xx', 'xx') #用tuple定义
slots 可以限制class能添加实例的属性
class Student(object):
@property #把getter的方法变成属性--score
def score(self):
return self._score
@score.setter #装饰器,把一个setter方法变成属性赋值
def score(self, value):
if not isinstance(value, int):
raise ValueError
if value < 0 or value > 100:
raise ValueError
self._score = value
上例中score是可读写属性
若上面只有getter即score是只读属性
多重继承
class Human(object):
pass
class Girl(Human):
pass
class Qin(Girl): #可继承父类所有功能
pass
#需要其他的功能,先定义好其他的类
class BeautyMixIn(object):
def wow(self):
print('what a beautiful girl')
#如果需要此功能,就多继承一个
class Qin(Girl, BeautyMixIn)
pass
这样我们不需要建立复杂的继承链,只要选择组合不同类的功能。
笔记本功能...