Py3k-alike style super() for Py2.x
Project description
Intro
newsuper provides you Python3k-alike super() for Python2.x
Since 0.3, newsuper is 110% behaving like Python3k’s super()
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__()
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_with_class(cls): return [cls, 'Foo'] @staticmethod def do_something_static(): return ['Foo'] class Bar(Foo): def __init__(self): super().__init__() self.bar = 1 @classmethod def do_something_static(cls): return super().do_something_static() + ['Bar'] class Baz(Bar): def __init__(self): super().__init__() self.baz = 1 @classmethod def do_something_with_class(cls): # Compatible with old super(Baz, cls) return super(Baz, cls).do_something_with_class() + ['Baz'] @staticmethod def do_something_static(): # Yes, you can even super a staticmethod! return super().do_something_static() + ['Baz'] if __name__ == '__main__': assert Baz().foo == Baz().bar == Baz().baz == 1 assert Baz.do_something_with_class() == [Baz, 'Foo', 'Baz'] assert Baz.do_something_static() == ['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.3a.zip
(5.3 kB
view hashes)
Built Distribution
newsuper-0.3a.win32.exe
(201.6 kB
view hashes)