python的动态属性
0. 动态语言与静态语言
- 静态语言
编译时已经确定好代码,运行过程中不能修改
如: Java,C,C++ - 动态语言
可以在运行的过程中,修改代码;即在运行时,新的函数、对象甚至代码可以被引进,已有的函数可以被删除或者结构上发生变化。
如:python,JavaScrpt,Rudy,PHP
1. 动态添加属性
1.1 动态添加变量
1.1.1 给对象动态添加变量
即在代码运行过程中,添加属性;如:
上述方法只能为特定的对象添加变量。
1.1.2 给类添加变量
类名.属性名 = 值
1.2 动态添加方法
1.2.1 给对象添加实例方法
利用types模块的MethodType(方法名,对象名)的方法;对象名作为self对象。如:
1.2.2 添加类方法
直接类名.方法名 = 方法
1.2.3 添加静态方法
类名.方法名 = 方法
2. 限制修改对象的属性
2.1 限制对象属性修改范围
利用__slot__方法规定当前类实例的参数属性范围,不在该范围内的参数不能修改,如:
注意
__slot__只对当前类实例起作用,对继承的子类不起作用。