algorithm - Doubts in Python code -
i'm reading book of algorithms in python, , i'm new python.
i can't understand example:
class bunch(dict): def __init__(self, *args, **kwds): super(bunch, self).__init__(*args, **kwds) self.__dict__ = self x = bunch(name="jayne cobb", position="public relations") print x.name
some questions:
- what meaning of * , ** in parameters "args" , "kwds"?
- what meaning of "super"?
- in classe extending "dict" class? built-in class?
best regards,
*args
means: collect parameters without name in list:
def x(a, *args): pass x(1, 2, 3)
assigns a=1
, args=[2,3]
.
**kwargs
assigns parameters name dict
kawrgs
:
def x(a, **kw): pass x(1, b=2, c=3)
assigns a=1
, kw={b=2, c=3}
.
the code super(bunch, self).__init__(*args, **kwds)
reads: call method __init__
of bunch
instance self
, parameters *args, **kwds
. it's standard pattern initialize superclasses (docs super
)
and yes, dict
built-in data type dictionaries.
Comments
Post a Comment