当然也可以利用lambda表达式为a对象动态增加方法,例:
1
2
3
4
|
a.use = lambda self ,people : print (people, '正在使用一只' , self .colour, self .material, '碗。' ) # 同样需要手动将调用者绑定到第一个参数 a.use(a, '大明' ) # 打印 大明 正在使用一只 green lron 碗。 |
如果想让a对象动态增加的方法自动绑定第一个参数,可以使用types模块下的MethodType进行包装,例:
1
2
3
4
5
6
7
|
test = lambda self ,tester : print (tester, '正在测试一只' , self .colour, self .material, '碗。' ) from types import MethodType # 使用MethodType对test进行包装,将第一个参数自动绑定为a a.test = MethodType(test,a) a.test( '小宗' ) # 打印 小宗 正在测试一只 green lron 碗。 |