假设你定义了一个类,它有一个方法来做一些复杂的处理:
class A(object):
def my_method(self):
# Some complicated processing is done here
return self
现在您想完全在另一个类的某个对象上使用该方法。比如,您想执行 A.my_method(7)。
这就是你会得到的:TypeError: unbound method my_method() must be called with A instance as first argument (got int instance instead)。
现在,是否有可能破解某些东西以便您可以在 7 上调用该方法?我想避免移动函数或重写它。 (请注意,该方法的逻辑确实取决于 self。)
注意事项:我知道有些人会想说,“你做错了!你在滥用 Python!你不应该这样做!”所以是的,我知道,这是我想做的一件可怕的事情。我问的是是否有人知道如何去做,而不是如何向我宣扬我不应该这样做。
请您参考如下方法:
当然,我不建议在实际代码中这样做,但是,当然,您可以进入类内部并将其方法用作函数:
class A(object):
def my_method(self):
# Some complicated processing is done here
return 'Hi'
print(A.__dict__['my_method'](7))
# Hi
