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