Python 有没有办法将对象方法自动转换为外部函数?
为了说明这一点,让我们采取以下行动:Python 有没有办法将对象方法自动转换为外部函数?,python,Python,为了说明这一点,让我们采取以下行动: class newobj: def __init__(self, val): self.value = val def mul2(self): self.value = 2*self.value 是否有一种方法可以自动将方法newobj.mul2转换为可以这样调用的函数mul2: o = newobj(5) mul2(o) 新函数mul2最好知道断言输入是newobj的实例,但这不是强制性的。只需将绑定方法
class newobj:
def __init__(self, val):
self.value = val
def mul2(self):
self.value = 2*self.value
是否有一种方法可以自动将方法newobj.mul2
转换为可以这样调用的函数mul2
:
o = newobj(5)
mul2(o)
新函数
mul2
最好知道断言输入是newobj
的实例,但这不是强制性的。只需将绑定方法分配给变量:
o = newobj(5)
mul2 = o.mul2
不必在同一表达式中调用方法,只需引用属性即可
演示:
演示:
只需将绑定方法指定给变量:
o = newobj(5)
mul2 = o.mul2
不必在同一表达式中调用方法,只需引用属性即可
演示:
演示:
newobj.mul2(o)
但它将与o.mult2()
newobj.mul2(o)
相同,但它将与o.mult2()
相同。OP想将其称为mul2(o)
,那么这不是mul2=newobj.mul2
?@tobias\k:我也在添加该选项的过程中:)@Martijn Pieters,mul2=newobj.mul2
是我想要的,op想把它称为mul2(o)
,那不是mul2=newobj.mul2
?@tobias_k:我也在添加这个选项:-)@Martijn Pieters,mul2=newobj.mul2
是我想要的
mul2 = newobj.mul2
mul2(o)
>>> o = newobj(5)
>>> mul2 = newobj.mul2
>>> o.value
5
>>> mul2(o)
>>> o.value
10