salve a tutti, non riesco a capire come usare *args, **kwargs in una classe. mi sono fatto uno script che riporto sotto ma, ad esempio mi perdo kwargs per strada mentre gli args proprio non li vedo da dentro la classe. lo script sotto mi ritorna
bc@hal9000:~/stimuli$ python super.py MRO: ['B', 'A', 'object'] __init__ class B: ({1: 'A', 2: 'B', 3: 'C'},) {} __init__ class A: ({1: 'A', 2: 'B', 3: 'C'},) {} super class B: ({1: 'A', 2: 'B', 3: 'C'},) {} class: B kwargs : {} end che non ho capito? 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) print foo raw_input('end') if __name__ == "__main__": main() _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python