[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