On Thu, Jun 12, 2008 at 9:46 PM, Guido van Rossum firstname.lastname@example.org wrote:
The intention was for these dicts to be used as namespaces. I think of it as follows:
(a) Using non-string keys is a no-no, but the implementation isn't required to go out of its way to forbid it.
That will allow easier and more efficient implementation, good!
(b) Using non-empty string keys that aren't well-formed identifiers should be allowed.
Is it allowed to "normalize" subclasses of strings to regular string, e.g. after:
class mystring(str): pass class C: pass
x = C() setattr(x, mystring('foo'), 42)
is it allowed that the dict of x contains a regular string 'foo' instead of the mystring instance?