class OBJ: pass def func(): print('im function!') return 1 obj = OBJ() setattr(obj, 'func', func) print(obj.func())
如上,给对象 obj 动态设置了一个方法 func,在下面调用时希望让 IDE 自动补全方法名,有办法实现没?
setattr 不行,直接赋值是可以的 obj.func=func
可是我要动态赋值肯定是因为没法直接赋值啊...有没有可能先给类设定一个初始方法,再重写这个方法,最后替换类属性;做到欺骗 IDE