[Python] super(MyClass, self).__init__(*args, **kwargs)

Giuseppe Costanzi giuseppecostanzi a gmail.com
Mer 17 Feb 2016 21:38:02 CET


2016-02-17 21:25 GMT+01:00 Christian Barra <barrachri a gmail.com>:
>
>
> Il giorno 17 febbraio 2016 21:20, Giuseppe Costanzi
> <giuseppecostanzi a gmail.com> ha scritto:
>>
>> hai capito perfettamente,
>> tra l' altro se seguo il consiglio di christian ottengo
>> bc a hal9000:~/stimuli$ python super.py
>> MRO: ['B', 'A', 'object']
>> __init__ class B: (('Y', 'Y', 'Z'), {1: 'A', 2: 'B', 3: 'C'}) {}
>> __init__ class A: (('Y', 'Y', 'Z'), {1: 'A', 2: 'B', 3: 'C'}) {}
>> super class B: (('Y', 'Y', 'Z'), {1: 'A', 2: 'B', 3: 'C'}) {}
>> class: B
>> kwargs : {}
>>
>> sono a dir poco confuso
>
>
> Printa anche args....cosi capisci dove sono finite le tue variabili :D
>
> *args ti gestisce tutti gli iterabili....una lista e' iterabile cosi come un
> dict.
>
>
>
>
> --
>
> I wish you a good day,
> Christian

si infatti con il tuo consiglio ho capito che va tutto in args
ma non riesco a capire come mandare un dizionario in kwargs
se faccio cosi'

 args = ('Y','Y','Z')
 kwargs = {1:"A", 2:"B", 3:"C"}
foo = B(args, kwargs,msg="Hello")

allora ottengo, quasi, quello che vorrei

bc a hal9000:~/stimuli$ python super.py
MRO: ['B', 'A', 'object']
__init__ class B: ({1: 'A', 2: 'B', 3: 'C'},) {'msg': 'Hello'}
__init__ class A: ({1: 'A', 2: 'B', 3: 'C'},) {'msg': 'Hello'}
super class B: ({1: 'A', 2: 'B', 3: 'C'},) {'msg': 'Hello'}
class: B
kwargs : {'msg': 'Hello'}
end
ma mi perdo la lista


Maggiori informazioni sulla lista Python