newsuper 0.3c
Python 3.x super() in 2.x
Intro
newsuper provides you Python 3.x super() in 2.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__()
Python 3.x's super() saves your ass:
super().__init__()
YOU WANT IT IN 2.X!
Example
Simply make your topest-level class inherited from 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
Try it now!
Use pip:
pip install newsuper
or easy_install:
easy_install newsuper
also, there is windows installer.
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| newsuper-0.3c.win32.exe (md5) | MS Windows installer | any | 2012-01-07 | 196KB | 104 |
| newsuper-0.3c.zip (md5) | Source | 2012-01-07 | 5KB | 166 | |
- Author: invlpg
- Home Page: http://pypi.python.org/pypi/newsuper/
- License: MIT
- Package Index Owner: invlpg
- DOAP record: newsuper-0.3c.xml
