[Python] super(MyClass, self).__init__(*args, **kwargs)
Giuseppe Costanzi
giuseppecostanzi a gmail.com
Mer 17 Feb 2016 21:43:18 CET
2016-02-17 21:40 GMT+01:00 Christian Barra <barrachri a gmail.com>:
>
>
> Il giorno 17 febbraio 2016 21:38, Giuseppe Costanzi
> <giuseppecostanzi a gmail.com> ha scritto:
>>
>> 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
>
>
> Mi fai vedere il resto del codice ?
> --
>
> I wish you a good day,
> Christian
come no
import sys
class A(object):
def __init__(self,*args, **kwargs):
print "__init__ class A: %s %s"%(args,kwargs)
class B(A):
def __init__(self,arg, *args, **kwargs):
print "__init__ class B: %s %s" %(args, kwargs)
super(B, self).__init__(*args, **kwargs)
print "super class B: %s %s" %(args, kwargs)
self.kwargs = kwargs
def __str__(self):
return "class: %s\nkwargs : %s" % (self.__class__.__name__,
self.kwargs,)
def main():
print "MRO:", [x.__name__ for x in B.__mro__]
args = ('Y','Y','Z')
kwargs = {1:"A", 2:"B", 3:"C"}
foo = B(args, kwargs,msg="Hello")
print foo
raw_input('end')
if __name__ == "__main__":
main()
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
Maggiori informazioni sulla lista
Python