class constructors: class vs. instance defaults
Michael Hoffman
m.h.3.9.1.without.dots.at.cam.ac.uk at example.com
Wed Oct 6 19:07:31 EDT 2004
Dan Perl wrote:
> I think that a more "pythonic" way to implement your class is with a change
> in the definition of your __init__:
> def __init__(self, foo_d=dict({})):
> This will create a separate copy for each one of your class instances
> instead of the common object that you are creating in the definition of the
> function.
Actually it does exactly what the original code did <wink>.
>>> def x(d=dict({})): return d
...
>>> a = x()
>>> b = x()
>>> a
{}
>>> b
{}
>>> a[3] = 4
>>> b
{3: 4}
Taking out the {} doesn't help either.
--
Michael Hoffman
More information about the Python-list
mailing list