Movatterモバイル変換
[0]ホーム
[Python-3000] UserDict revamp
Raymond Hettingerpython at rcn.com
Thu Feb 15 18:38:16 CET 2007
Since I contributed DictMixin and have been responsible for its maintenance,if no one minds, I would like to be the one to migrate it to Py3.0.Raymond----- Original Message ----- From: "Guido van Rossum" <guido at python.org>To: "Steven Bethard" <steven.bethard at gmail.com>Cc: "Python 3000" <python-3000 at python.org>; "Eduardo EdCrypt O. Padoan" <eopadoan at altavix.com>Sent: Thursday, February 15, 2007 9:15 AMSubject: Re: [Python-3000] UserDict revamp> On 2/15/07, Steven Bethard <steven.bethard at gmail.com> wrote:>> On 2/15/07, Guido van Rossum <guido at python.org> wrote:>> > Perhaps the most egregious example is MixinDict, which currently>> > assumes that keys() is a primitive operation returning a list, and>> > builds __iter__() out of that. Obviously a better approach is to turn>> > this around. (I'd have thought that ever since 2.2 this would have>> > been the better design, but perhaps it was too late then already.)>>>> I asked the same thing back in early 2005:>>>>http://mail.python.org/pipermail/python-list/2005-January/300042.html>>>> Glad to hear I wasn't too out of my mind. ;-)>> Reading that post, I think that __len__ should also be part of the> primitive operations, at least optionally. The dict view code to> compare two views (or a view and a set; always excluding the values> view which is not a set) for equality makes good use of this since it> knows that if the lengths are unequal the objects cannot be equal. In> order to determine equality without knowing the legth would double the> cost of the operation because you'd end up having to iterate over each> side, checking that all its elements are contained in the other side.> With a length check, you only have to iterate over one side, and only> if the lengths are equal.>> Another distinction I'd like to make is between mutable and immutable> mappings. But maybe this is outside the realm of a *dict* mixin, and> belongs in the (more speculative) discussion on abstract base classes.>> --> --Guido van Rossum (home page:http://www.python.org/~guido/)> _______________________________________________> Python-3000 mailing list>Python-3000 at python.org>http://mail.python.org/mailman/listinfo/python-3000> Unsubscribe:>http://mail.python.org/mailman/options/python-3000/python%40rcn.com
More information about the Python-3000mailing list
[8]ページ先頭