Python Method overriding, does signature matter?

后端 未结 6 1143
轮回少年
轮回少年 2020-12-04 15:11

Lets say I have

class Super():
  def method1():
    pass

class Sub(Super):
  def method1(param1, param2, param3):
      stuff

Is this corr

6条回答
  •  清歌不尽
    2020-12-04 15:48

    You could do something like this if it's ok to use default arguments:

    >>> class Super():
    ...   def method1(self):
    ...     print("Super")
    ...
    >>> class Sub(Super):
    ...   def method1(self, param1="X"):
    ...     super(Sub, self).method1()
    ...     print("Sub" + param1)
    ...
    >>> sup = Super()
    >>> sub = Sub()
    >>> sup.method1()
    Super
    >>> sub.method1()
    Super
    SubX
    

提交回复
热议问题