【发布时间】:2011-02-16 11:20:39
【问题描述】:
假设你定义了一个类,它有一个方法可以做一些复杂的处理:
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!你不应该这样做!”所以是的,我知道,这是我想做的一件可怕的事情。我问的是是否有人知道该怎么做,而不是如何向我宣扬我不应该这样做。
【问题讨论】:
-
我看到大多数答案都建议我将逻辑移到单独的函数中。可以,是的,但我更愿意避免它,我想知道是否可以将其保留为一种方法,但仍可在
7上调用它。
标签: python class object methods