【发布时间】:2018-05-03 04:00:29
【问题描述】:
(Python 挤压) 我正在覆盖以下方法-
installEventHandler(eventName, handlerFunctionName);
installEventHandler(className, eventName, handlerFunctionName);
installEventHandler(object, eventName, handlerFunctionName);
在我的方法中,
def MyinstallEventHandler(???)
我不确定我应该在我的函数中定义什么,以便我可以覆盖所有方法。
当我尝试传递 *args 时,它被视为元组并且与上述任何方法都不匹配。
重载的方法是 squish 的。我想覆盖以上三种方法,但我找不到任何解决方案。
【问题讨论】:
-
Python 没有重载函数。
-
另外,如果你通过
*args,它不被认为是一个元组;它被扩展为单独的参数。例如,args = [1,2,3]; f(*args)调用f(1, 2, 3)。当您在def中接受*args时,您可能会混淆。在这种情况下,您确实将所有参数作为一个元组获取——但随后要将它们作为单独的参数传递,您只需在调用中再次使用*args。这可能正是您在这里寻找的。span> -
似乎
eventName和handlerFunctionName都是强制性的;也许是一个接受className或object作为可选参数的函数(默认为None)?
标签: python qt overloading overriding squish