(original) (raw)



On Mon, Jul 17, 2017 at 11:07 PM, Petr Viktorin <encukou@gmail.com> wrote:
On 07/17/2017 10:31 PM, Giampaolo Rodola' wrote:
I completely agree. I love namedtuples but I've never been too happy about the additional overhead vs. plain tuples (both for creation and attribute access times), to the point that I explicitly avoid to use them in certain circumstances (e.g. a busy loop) and only for public end-user APIs returning multiple values.

To be entirely honest, I'm not even sure why they need to be forcefully declared upfront in the first place, instead of just having a first-class function (builtin?) written in C:

\>>> ntuple(x=1, y=0)
(x=1, y=0)

...or even a literal as in:

\>>> (x=1, y=0)
(x=1, y=0)

Most of the times this is what I really want: quickly returning an anonymous tuple with named attributes and nothing else, similarly to os.times() & others. \[...\]

It seems that you want \`types.SimpleNamespace(x=1, y=0)\`.

That doesn't support indexing (obj\[0\]).

--