Re: [Python-Dev] How to update namedtuple asdict() to use dict instead of OrderedDict

2019年1月31日 13:32:43 -0800

On Thu, Jan 31, 2019, 05:26 Nick Coghlan <[email protected] wrote:
> On 2019年1月31日 at 16:40, Glenn Linderman <[email protected]>
> wrote:
> >> On 1/30/2019 8:45 PM, Raymond Hettinger wrote:
> >>> On Jan 30, 2019, at 3:41 PM, Glenn Linderman <[email protected]>
> wrote:
> >>> Would it be practical to add deprecated methods to regular dict for
> the OrderedDict reordering methods that raise with an error suggesting "To
> use this method, convert dict to OrderedDict." (or some better wording).
> >> That's an interesting idea. Regular dicts aren't well suited to the
> reordering operations (like lists, repeated inserts at the front of the
> sequence wouldn't be performant relative to OrderedDict which uses
> double-linked lists internally). My instinct is to leave regular dicts
> alone so that they can focus on their primary task (being good a fast
> lookups).
> > My goal was just to give a meaningful error message if someone misses
> the implications in What's New, and has code that actually does expect
> named_tuple.as_dict to have the ordering operations.
>
> The downside of doing that is that automated code introspection tools
> don't know that the methods don't really exist, they just see the
> method names in the type dictionary and offer them up for code
> completion.
>
> So in this case, the extra runtime check isn't worth the cost of
> breaking static code analysis and other forms of introspection.
>
It's technically possible for attributes to do something custom when
accessed, without appearing in __dir__. I don't know if that's a useful
technique in this case, but sometimes it is.
-n
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to