From ffae306784a067c9a604856e0886fa9d5e716337 Mon Sep 17 00:00:00 2001 From: Armin Rigo Date: Thu, 12 Jun 2008 09:50:58 +0000 Subject: Sounds obvious, but I didn't even realize that you can put non-string keys in type dictionaries without using this locals() hack. --- Lib/test/crashers/loosing_mro_ref.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Lib/test/crashers/loosing_mro_ref.py b/Lib/test/crashers/loosing_mro_ref.py index f0b8047..b5fa93b 100644 --- a/Lib/test/crashers/loosing_mro_ref.py +++ b/Lib/test/crashers/loosing_mro_ref.py @@ -27,10 +27,9 @@ class Base(object): class Base2(object): mykey = 'from Base2' -class X(Base): - # you can't add a non-string key to X.__dict__, but it can be - # there from the beginning :-) - locals()[MyKey()] = 5 +# you can't add a non-string key to X.__dict__, but it can be +# there from the beginning :-) +X = type('X', (Base,), {MyKey(): 5}) print X.mykey # I get a segfault, or a slightly wrong assertion error in a debug build. -- cgit v0.12