[Python-3000] Nix dict.copy()

Guido van Rossum guido at python.org
Sun Feb 10 17:22:38 CET 2008


On Feb 9, 2008 8:58 PM, Phillip J. Eby <pje at telecommunity.com> wrote:
> At 07:51 PM 2/8/2008 -0500, Raymond Hettinger wrote:
> >I recommend dropping the dict.copy() method from Py3.0.
> >
> >* We can already write:  newd = copy.copy(d).
> >* We can also write:     newd = dict(d)
> >* Both of those approaches also work for most other containers.
>
> I'm not fond of this idea.  dict.copy() is polymorphic -- but dict(d) isn't.
>
> copy.copy() is polymorphic, but requires an import, which means the
> path of least resistance will be to use dict(d)...  which will then
> turn non-dictionaries into dictionaries.
>
> If copy.copy() were a builtin and the "one obvious way" to copy
> containers, +1.  Otherwise, -0.5.

On second thought, I'm with Phillip here, for exactly the reasons he
states. Let's leave copy() alone.

I'm of two minds about adding it to the MutableMapping and MutableSet
ABCs; requiring it might constrain implementations unnecessary, and
there isn't an easy way to provide a generic implementation. Now I
wish we had "optional" abstract methods. Maybe those can be added to
the ABC PEP yet?

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list