面向对象
高级
-
动态添加属性
-
python可以动态为对象绑定属性,但是不会影响到同类的其他对象。
class Person: pass p1=Person() p2=Person() p1.gender='male' print(p1.gender) print(p2.gender) #'Person' object has no attribute 'gender'
-
动态为对象绑定方法
from types import MethodType class Person: pass def displayMe(self): print('my genderis:', self.gender) # 给一个实例绑定的方法,对另一个实例是不起作用的: p1.dispalyMe=MethodType(displayMe,p1) p1.dispalyMe()
-
通过动态给类增加属性和方法,可以实现所有对象都增加了属性和方法
Person.gender='male' def displayMe(self): print('my genderis:', self.gender) Person.displayMe=displayMe
-
使用__slots__限制实例的属性.比如,只允许对Student实例添加name和age属性。
-
class Person(object): __slots__=('name',
-