Py3k-alike style super() for Py2.x
Project description
Intro
newsuper provides you Python3k-alike super() for Python2.x,
Why
you must hate to write code like this:
super(Foo, self).__init__()
and you might have written (WRONG) code like this:
super(self.__class__, self).__init__()
Python3k’s super() saves your ass a bit:
super().__init__()
but this looks evil, and confusing for classmethods
Example
You can make your topest-level class subclassing newsuper.Object
from newsuper import Object class Foo(Object): def __init__(self): self.foo = 1 @classmethod def do_something(cls): return ['Foo'] class Bar(Foo): def __init__(self): super().__init__(self) # You should pass self explictly self.bar = 1 @classmethod def do_something(cls): return super().do_something() + ['Bar'] class Baz(Bar): def __init__(self): super().__init__(self) self.baz = 1 @classmethod def do_something(cls): return super(Baz, cls).do_something() + ['Baz'] # Compatible with old super(Baz, cls) if __name__ == '__main__': assert Baz().foo == Baz().bar == Baz().baz == 1 assert Baz.do_something() == ['Foo', 'Bar', 'Baz']
property is supported too.
Install
Let’s try it now
Use pip:
pip install newsuper
or easy_install:
easy_install newsuper
also, there is windows installer.
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
newsuper-0.2a.zip
(6.5 kB
view hashes)
Built Distribution
newsuper-0.2a.win32.exe
(202.7 kB
view hashes)