Andrew Dalke wrote: > def __init__(self, prec=None, rounding=None, > traps=None, flags=None, > _rounding_decision=None, > Emin=None, Emax=None, > capitals=None, _clamp=0, > _ignored_flags=None): > ... > for name, val in locals().items(): > if val is None: > setattr(self, name, _copy.copy(getattr(DefaultContext, name))) > else: > setattr(self, name, val)
Hmmm. For things like that, maybe what you really want is to be able to give the ** arg a default value: def __init__(self, **kwds = dict(rec=None, rounding=None, traps=None, flags=None, _rounding_decision=None, Emin=None, Emax=None, capitals=None, _clamp=0, _ignored_flags=None)) for name, val in kwds: ... Although you can get a similar effect now by doing def __init__(self, **kwds): args = dict(prec=None, rounding=None, traps=None, flags=None, _rounding_decision=None, Emin=None, Emax=None, capitals=None, _clamp=0, _ignored_flags=None) args.update(kwds) for name, value in args: ... So, no need for locals() here. -- Greg _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com