逆天了?
Topic source上课不认真,廖老师明明讲的清清楚楚。
使用__slots__要注意,__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的;除非在子类中也定义__slots__,这样,子类实例允许定义的属性就是自身的__slots__加上父类的__slots__。
class Animal(object): slots = ('name','age')
要限制对象的实例,一定要用"__slots__"这个特殊的变量,你这里定义的slots这个类变量是不起作用的
- 1
神月宗
-- coding:utf-8 --
class Animal(object): slots = ('name','age')
class Cat(Animal): pass
c = Cat() c.name = 'Chris iven' c.age = 19 c.score = 89 print c.name,c.age,c.score 竟然没报错?然后把c换成Animal的话就会出错: 报错类型:AttributeError: 'Animal' object has no attribute 'score'
输出:Chris iven 19 89 1000
##有毒...