> During the Language Summit 2011 (*), it was discussed that PyPy and
> Jython don't support non-string key in type dict. An issue was open to
> emit a warning on such dict, but the patch has not been commited yet.

It's the issue #11455. As written in the issue, there are two ways to
create such type:

class A(object):
 � �locals()[42] = "abc"

or

type("A", (object,), {42: "abc"})

Both look like an ugly hack.

Here is a cleaner version, using metaclasses (Python 2.6):

class M(type):
� � def __new__(mcs, name, bases, dict):
">

(original) (raw)

On Wed, Mar 7, 2012 at 5:45 PM, Victor Stinner <victor.stinner@gmail.com> wrote:
> During the Language Summit 2011 (\*), it was discussed that PyPy and
> Jython don't support non-string key in type dict. An issue was open to
> emit a warning on such dict, but the patch has not been commited yet.

It's the issue #11455\. As written in the issue, there are two ways to
create such type:

class A(object):
� �locals()\[42\] = "abc"

or

type("A", (object,), {42: "abc"})

Both look like an ugly hack.

Here is a cleaner version, using metaclasses (Python 2.6):

class M(type):
� � def \_\_new\_\_(mcs, name, bases, dict):
� � � � � � dict\[42\] = 'abc'
� � � � � � return super(M, mcs).\_\_new\_\_(mcs, name, bases, dict)

class A(object):
� � \_\_metaclass\_\_ = M

Victor
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: http://mail.python.org/mailman/options/python-dev/ckaynor%40zindagigames.com