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 -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/6DTKMBJBHQ3VADKIMDA7LPLBMG2UU4LC/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to