class or instance method
Scott David Daniels
Scott.Daniels at Acm.Org
Sun Jun 21 17:23:41 EDT 2009
Hrvoje Niksic wrote:
> ...
> class class_or_instance(object):
> def __init__(self, fn):
> self.fn = fn
> def __get__(self, obj, cls):
> if obj is not None:
> return lambda *args, **kwds: self.fn(obj, *args, **kwds)
> else:
> return lambda *args, **kwds: self.fn(cls, *args, **kwds)
> ...
Just to polish a bit:
import functools
class ClassOrInstance(object):
def __init__(self, fn):
self._function = fn
self._wrapper = functools.wraps(fn)
def __get__(self, obj, cls):
return self._wrapper(functools.partial(self._function,
cls if obj is None else obj))
--Scott David Daniels
Scott.Daniels at Acm.Org
More information about the Python-list
mailing list