(Python挤压) 我正在重写以下方法 -
installEventHandler(eventName, handlerFunctionName);
installEventHandler(className, eventName, handlerFunctionName);
installEventHandler(object, eventName, handlerFunctionName);
在我的方法中,
def MyinstallEventHandler(???)
我不确定我应该在我的函数中定义什么,以便我可以覆盖所有方法。
当我尝试传递* args时,它被视为元组并且与上述任何方法都不匹配。
重载方法是压扁方法。我想覆盖以上三种方法,我无法找到任何解决方案。
答案 0 :(得分:0)
看看这些examples,看来调用installEventHandler(*args)
,其中args
是一个合适的参数元组(2或3)就足够了。如果您想创建自己的installEventHandler
使用其他参数,只需创建您要创建的内容并执行此操作即可调用原始installEventHandler
。
内置Python不允许处理重载。但是,您可能希望使用单个调度,这允许您根据第一个参数的类型处理简单情况。 singledispatch
装饰器在functools中实现。
包overloading通过查看参数类型为您提供更复杂的重载函数支持。根据您的Python版本,您可能需要更改一些行以保持typing
兼容性。
在您的情况下,应用这些解决方案是不可能的,因为您的原始方法没有使用合适的装饰器进行修饰。