Использование того же декоратора (с аргументами) с функциями и методами

Я пытался создать декоратор, который может быть использован с функциями и методами в Python. Это на это вышлоС собственным не так сложно, но при создании декоратора, который принимает аргументы, кажется, что.

class methods(object):
    def __init__(self, *_methods):
        self.methods = _methods

    def __call__(self, func): 
        def inner(request, *args, **kwargs):
            print request
            return func(request, *args, **kwargs)
        return inner

    def __get__(self, obj, type=None):
        if obj is None:
            return self
        new_func = self.func.__get__(obj, type)
        return self.__class__(new_func)

Приведенный выше код правильно оборачивает функцию / метод, но в случае методаrequest Аргумент - это экземпляр, с которым он работает, а не первый не-собственный аргумент.

Есть ли способ узнать, применяется ли декоратор к функции вместо метода, и действовать соответственно?

Ответы на вопрос(5)

Ваш ответ на вопрос