Advanced inner classes for Python
This module add some useful features to Python inner classes :
class MyOuter: @inner class MyInner: def hello(self): print('Hello')
The inner class gain an 'outer' attribute that reference its outer class.
>>> MyOuter.MyInner.outer <class '__main__.MyOuter'>
When the outer class is derived, the inner class is also derived in order to point at the derived outer class.
class MyChildOuter(MyOuter): pass >>> MyChildOuter.MyInner.outer <class '__main__.MyChildOuter'>
When the inner class is redefined in an outer subclass, it will automatically derivate from the inner class of the outer superclass.
class MyChildOuter(MyOuter): class MyInner: pass >>> MyChildOuter.MyInner().hello() Hello
the outer attribute of an inner instance store it's outer instance
outer = MyOuter() >>> outer <__main__.MyOuter object at 0x03BAA990> >>> outer.MyInner().outer <__main__.MyOuter object at 0x03BAA990>
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.