Ram*_*hum 1 python methods class object
假设您定义了一个类,该类具有执行一些复杂处理的方法:
class A(object):
def my_method(self):
# Some complicated processing is done here
return self
Run Code Online (Sandbox Code Playgroud)
现在你想完全在另一个类的某个对象上使用该方法.喜欢,你想做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
Run Code Online (Sandbox Code Playgroud)