python式注入『旁门左道』

时间:2023-01-22 08:42:05

 今天遇上这样一个需求


IG对象需要做一个加密,但是不可以自己做,必须用FG对象做,通常的方法是在IG的初始化中把加密委托给FG,但又不想让在IG中去做这个委托。在另一个地方,IG是给AG用的,于是我选择在把IG传给AG后去做这个委托,使用了lambda来做这个委托。

这时候必须把一个方法注入到一个IG对象中,很好玩的好几种语法

def __init__(self,b):
##        cc是IG的一个属性
        b.a=lambda c:2*c;
        b.a=lambda c:b.__class__.cc*2*c;
        b.__class__.a=lambda s,c:s.cc*2*c;

##        b=b.__class__
##        b.a=lambda s,c:s.cc*2*c

暂时先这样...