On Aug 9, 1:38 pm, Peter Otten <__pete...@web.de> wrote: > dmitrey wrote: > > hi all, > > suppose I have defined a child class of Python dict, currently it > > constructor looks like that: > > def __init__(self, *args, **kwargs): > > dict.__init__(self, *args, **kwargs) > > #(+some more insufficient code) > > > Constructor should be capable of calling with either any way Python > > dict is constructed or with a Python dict instance to be derived from; > > calculations speed is important. > > > So it works well for now, but I want __init__ to set modified values, > > like this: > > values_of_the_dict = [some_func(elem) for elem in self.values()] > > > How this could be done? > >>> class D(dict): > > ... def __init__(self, *args, **kw): > ... if args: > ... args = ((k, v.upper()) for k, v in args[0]), > ... if kw: > ... for k in kw: kw[k] = 10*kw[k] > ... dict.__init__(self, *args, **kw) > ...>>> D(["ab", "cd"], e="f") > > {'a': 'B', 'c': 'D', 'e': 'ffffffffff'} > > Replace v.upper() and 10*kw[k] with the appropriate some_func() calls.
OK, thank you. > Personally I would apply the function before passing the data to the dict > subclass. It's impossible for the situation in hand. D. -- http://mail.python.org/mailman/listinfo/python-list