Advanced inner classes for Python
Project description
This module add some useful features to Python inner classes :
class MyOuter:
@inner
class MyInner:
def hello(self):
print('Hello')
outer attribute
The inner class gain an 'outer' attribute that reference its outer class.
>>> MyOuter.MyInner.outer
<class '__main__.MyOuter'>
inner derivation
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'>
carried inheritance
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
inner instantiation
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>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
inner-class-0.2.tar.gz
(3.4 kB
view hashes)