X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;ds=sidebyside;f=bluechips%2Flib%2Fsubclass.py;h=2d838c43795b148c6b6a2c5f103f8c5ee3e2a2b0;hb=74d234f880ee6b3c510227ea94459b81a79755db;hp=3511d8e382dd7911aeefd5b13fd6b87e82f4cbe7;hpb=d426475b0013caf6bf9826258c0982276ad79e23;p=bluechips.git diff --git a/bluechips/lib/subclass.py b/bluechips/lib/subclass.py index 3511d8e..2d838c4 100644 --- a/bluechips/lib/subclass.py +++ b/bluechips/lib/subclass.py @@ -3,11 +3,13 @@ Create subclasses that call out to their "superclass" for all methods but return the "subclass's" type """ -def wrapper(c, func): - return (lambda self,*args: c(getattr(self.value, func)(*map(self.value.__class__, args)))) +def wrapper(cls, func): + return (lambda self, *args: cls(getattr(self.value, func)(*map(self.value.__class__, args)))) class SmartSubclass(object): - def __init__(self, superclass, exclude=[]): + def __init__(self, superclass, exclude=None): + if exclude is None: + exclude = [] self.superclass = superclass self.exclude = exclude def __call__(self, name, bases, dict):