classmethod
class my_classmethod(object):
def __get__(self, obj, type=None):
def wrapper(*args, **kwargs):
return self.function(type, *args, **kwargs)
return wrapper
def __get__(self, obj, type=None):
return partial(self.function, type)
def __init__(self, function):
self.function = function
class Class2(object):
@my_classmethod
def get_user(cls, x):
return x, "get_user"
print Class2.get_user("###")
('###', 'get_user')
staticmethod
class my_staticmethod(object):
def __get__(self, obj, type=None):
def wrapper(*args, **kwargs):
return self.function(*args, **kwargs)
return wrapper
def __init__(self, function):
self.function = function
class Class2(object):
@my_staticmethod
def get_user(x):
return x, "get_user"
print Class2.get_user("###")
('###', 'get_user')