[Python-ideas] Proposal to add new built-in struct (was: Add kwargs to built-in function object)

Brandon Mintern bmintern at gmail.com
Fri May 23 00:24:19 CEST 2008


On Thu, May 22, 2008 at 6:10 PM, Brett Cannon <brett at python.org> wrote:
> So you save three characters? I don't call that cumbersome.

If foo["bar"] is not cumbersome, it is at least less elegant and the
intent is less clear than foo.bar. Moreover, as I stated in the next
paragraph, it does become cumbersome down the line when you decide
that you should have used a class after all, and now you have to
change all of those foo["bar"] lines to foo.bar. Note that simple
search-and-replace wouldn't help if you are passing foo to various
functions.

> Thinking of a name for your class is not difficult, especially if you
> keep it private to the module, class, function, etc.

It may not be difficult, but when the name is unnecessary, simply
needing to declare it seems silly.

> This does not strike me as useful enough to have as a built-in. It
> would be better placed in the stdlib.

I would be happy with it at least becoming part of collections or some
other module, but then I wonder how many new-ish Python programmers
would persist in using a tuple or a dict instead of a more elegant
struct solution for lack of knowing about it. At least if it was in
Python somewhere, though, searching for "python struct" would be more
likely to return what the programmer is looking for.

Ouch... it seems that struct is already the name of a module. If
enough people like my idea, perhaps that module could be renamed to
"cstruct". Then again, if my idea did become a part of collections
(rather than a built-in), collections.struct and the struct module
would be able to co-exist, albeit somewhat confusingly.

Brandon



More information about the Python-ideas mailing list