Skip to content

Instantly share code, notes, and snippets.

@maurobaraldi
Last active August 29, 2015 14:09
Show Gist options
  • Save maurobaraldi/24c18618260b68a1cbb7 to your computer and use it in GitHub Desktop.
Save maurobaraldi/24c18618260b68a1cbb7 to your computer and use it in GitHub Desktop.
Class decorator example
class ClassDecorator(object):
def __init__(self, models_list=None):
self.ml = models_list or 'models_list'
def __call__(self, cls):
class Wrapped(cls):
if not self.ml in globals():
globals()[self.ml] = []
globals()[self.ml].append(cls.__name__)
return Wrapped
@ClassDecorator()
class Class:
def method(self):
return 'This is a Class.'
@ClassDecorator()
class Klass:
def method(self):
return 'This is a Klass.'
klass = Klass()
klass.method()
cclass = Class
cclass.method()
print classes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment