Correct type for a simple "bag of attributes" namespace object (was: 3 Suggestions to Make Python Easier For Children)
Mark Summerfield
list at qtrac.plus.com
Sat Aug 2 16:46:04 EDT 2014
On Saturday, 2 August 2014 20:58:59 UTC+1, Ben Finney wrote:
> Steven D'Aprano writes:
>
> > If you need instances which carry state, then object is the wrong
> > class.
Fair enough.
> Right. The 'types' module provides a SimpleNamespace class for the
> common "bag of attributes" use case::
>
> >>> import types
> >>> foo = types.SimpleNamespace()
> >>> foo.x = 3
> >>> foo
> namespace(x=3)
This is too much for children (& beginners).
But perhaps what I should be asking for is for a new built-in that does what types.SimpleNamespace() does, so that without any import you can write, say,
foo = namespace(a=1, b=2)
# or
bar = namespace()
bar.a = 1
where under the hood namespace has the same behavior as types.SimpleNamespace().
Naturally, I understand that adding a new name is a big deal and may be too much to ask for beginners.
More information about the Python-list
mailing list