Are we just trying to list every imaginable word that is even vaguely
related to the concept of "something that holds something"? If we have
plate, tray, board then surely we should include saucer, cup, bowl, pot,
frying_pan, cheeseboard, box, suitcase, luggage, handbag, ...
Trying to exhaustively list every synonym is just exhausting and not
very productive. It is okay to have a first pass filter and reject words
which are clearly unsuitable, like "plate" and "panel" (with or without
the "attr" prefix) etc.
- A plate is a plain, featureless object, the very opposite of something
that has arbitrary attributes;
- a panel is best used for compound UI elements like *instrument panel*.
There isn't a generic name for "thing that we attach other things to".
There are specific concrete examples of such: a notice board, a tool
board, a coat rack, letter spike, meat hook, etc but they're too
specific. The general term "board" has the wrong connotations, e.g. flat
rather than abstract.
Other naming problems:
- it's an object, but `object` is already in use for the immutable base
object;
- "thing" is too generic;
- anything like "plate", "bag" etc is too specific and usually a bad
analogy;
- "Bunch" at least has historical usage, but it's not really a good
analogy for a single object with arbitrary attributes;
- anything related to "namespace" is problematic because, although the
object actually *is* a namespace, so is every other object; even None
has (dunder) attributes;
- and also we're not using it as a namespace in the classical sense of
globals or local namespace.
Fundamentally, this object with attributes doesn't have a good name, and
the data model is suspect too. It's not really a collection, as such,
since attributes are semantically *part of the object* as opposed to
arbitrary data (dog.tail versus dog carrying a bone).
Nevertheless, a collection is what we're going to use it as, a key:value
mapping where the keys are limited to identifiers and access is via
attribute access rather than subscripting. That conflict makes it hard
to come up with a good name for it.
Honestly, I think that while it's fun to try to imagine names for this,
I don't think that there is a *good* name for it that everyone will
agree on. So let's just import it using whatever name you like:
from types import SimpleNamespace as apparatus
--
Steve
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/6DTKMBJBHQ3VADKIMDA7LPLBMG2UU4LC/
Code of Conduct: http://python.org/psf/codeofconduct/