def __init__(self, **kw):
            """ Simplistic __init__: first set all attributes to default
                values, then override those explicitly passed in kw.
            """
            for k, (value, copy_op) in self.__defaults__.iteritems():
                if k not in kw: #No need to set value to be overridden later on.
                    if copy_op is None:
                        #No copy op (immutable value)
                        setattr(self, k, value)
                    else:
                        setattr(self, k, copy_op(value))
            for k, value in kw.iteritems():
                setattr(self, k, value)
 Simplistic __init__: first set all attributes to default
                values, then override those explicitly passed in kw.
            
recipes/Python/577999_Bunch_class_created_attributes/recipe-577999.py