Python 3在派生类中使用不同签名覆盖方法

时间:2018-02-07 22:38:32

标签: python-3.x

我想覆盖派生类中基类的方法。

我无法访问基类的代码,所以我必须继承它并且必须覆盖该方法。

重写方法需要调用具有任意数量参数的函数,作为参数传递,因此我必须更改方法签名。

但是当我尝试运行以下代码时出现以下错误:

TypeError: 'str' object is not callable

示例代码:

# I don't have access to this code:
# _____________________________
class Base:
    def run(self):
        pass
# _____________________________



# Only to the following:

class Sub(Base):
    def run(self, func, *args):
        func(*args)


def call_me(test1, test2):
   print(test1+test2)


test = Sub
test.run(call_me, "test1 ", "test2")

我有什么建议可以解决这个问题吗?

我想要方法"运行"能够使用未知数量的参数调用任何函数

---------编辑---------

好的抱歉,我找到了解决方案:

这只是一个可怕的错字 - 我的坏!

以下陈述中输入错字:

test = Sub

必须是:

test = Sub()

0 个答案:

没有答案