Bonjour, j'ai donc un problème de passage d'arguments **kwargs d'une classe à une seconde. Pour mieux expliciter, voici un dummy code avec l'erreur que j'obtiens.

Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Parent:
 
    def __init__(self, age, **kwargs):
        self.age = age
        if 'kwargs1' and 'kwargs2' in kwargs:
            self.kwargs1 = kwargs['kwargs1']
            self.kwargs2 = kwargs['kwargs2']
 
class Child(Parent):
 
    def __init__(self, **kwargs):
        super(Child, self).__init__(**kwargs)
 
age = 10
 
My_child = Child(age, kwargs1='John', kwargs2='Robert')
Erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-76-91ce7bcdbcc5> in <module>()
     14 age = 10
     15 
---> 16 My_child = Child(age, kwargs1='John', kwargs2='Robert')
 
TypeError: __init__() takes 1 positional argument but 2 were given
J'ai fais quelques recherches mais j'avoue ne pas comprendre l'origine du problème.