如何正确继承从 parent 到 child class 的参数?

How to correctly inherit arguments from parent to child class?

有没有办法实例化 child class 继承 parent class 的所有参数并添加新参数 while:

或者这是 unconventional/unpythonic 要做的事吗?

下面的minimal-working例子应该能更清楚地解释我的问题。

提前致谢!

class Parent:
    '''
    Sample Parent class.
    
    Arguments
    ---------
    arg1: int
        Sample argument 1.
    arg2: int
        Sample argument 2.
    arg3: int
        Sample argument 3.
    '''
    def __init__(self, arg1, arg2, arg3):
        self.arg1 = arg1
        self.arg2 = arg2
        self.arg3 = arg3
        
        
class Child(Parent):
    '''
    Sample Child class.
    
    Arguments
    ---------
    arg1: int
        Sample argument 1.
    arg2: int
        Sample argument 2.
    arg3: int
        Sample argument 3.
    arg4: int
        Sample argument 4.
    '''
    # THIS CHANGES THE ORDER OF THE ARGUMENTS (arg4 is first.)
    def __init__(self, arg4, *args):
        super().__init__(*args)
        self.arg4 = arg4
    
    # THIS MAKES arg4 A KEYWORD-ONLY ARGUMENT.
    def __init__(self, *args, arg4):
        super().__init__(*args)
        self.arg4 = arg4
        
    # THIS REQUIRES MANUAL CHANGES IF THE PARENT CHANGES.
    def __init__(self, arg1, arg2, arg3, arg4):
        super().__init__(arg1, arg2, arg3)
        self.arg4 = arg4

您可以定义 parent class 以同时使用 *args

def __init__(self, *args):
    self.arg1 = args[0]
    self.arg2 = args[1]
    self.arg3 = args[2]

然后 child:

def __init__(self, *args):
    super().__init__(*args)
    self.arg4 = args[-1]

这会将所有参数传递给 parent 但它只会使用前 3 个。child 只会使用 args

中的最后一个元素