[Python-Dev] Pickling instances of nested classes

Walter Dörwald walter at livinglogic.de
Fri Apr 1 21:29:44 CEST 2005


Samuele Pedroni wrote:
> [...]
>> this should approximate that behavior better: [not tested]
>> import sys
>> ....
> def __new__(cls, name, bases, dic):
> sub = [x for x in dic.values() if isinstance(x,HierarchMeta)]
> newtype = type.__new__(cls, name, bases, dic)
> for x in sub:
> if not hasattr(x, '_outer_') and 
> getattr(sys.modules.get(x.__module__), x.__name__, None) is not x:
> x._outer_ = newtype
> return newtype
>> .....
>> we don't set _outer_ if a way to pickle the class is already there

This doesn't fix
class Foo:
 class Bar:
 pass
class Baz:
 Bar = Foo.Bar
both this should be a simple fix.
Bye,
 Walter Dörwald


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /