LINUX.ORG.RU

История изменений

Исправление pylin, (текущая версия) :

С учетом некоторых дополнений: декоратор класса это функция, которая срабатывает при определении класса. Декоратор класса, основан на том свойстве Python, что сам класс то же объект и определением класса можно оперировать как объектом. Исходя из этого декоратор может делать нечто такое, например:

def add_field(cls):
       cls.foo = 'decorator here'

Кроме того сами классы могут выступать как декораторы, то есть класс-декоратор это такой класс, который должен в результате своей работы вернуть другой класс, класс который декорируем. Все это опять же возможно посколько сам класс это объект для других функций и классов.

Как пример с SO:

class MyDecorator(object):
    def __init__(self, argument):
        self.arg = argument

    def __call__(self, fn):
        @functools.wraps(fn)
        def decorated(*args, **kwargs):
            print "In my decorator before call, with arg %s" % self.arg
            fn(*args, **kwargs)
            print "In my decorator after call, with arg %s" % self.arg
        return decorated

  

В ходе отработки данного класса как декоратора будет вызван метод __call__

Исправление pylin, :

С учетом некоторых дополнений: декоратор класса это функция, которая срабатывает при определении класса. Декоратор класса, основан на том свойстве Python, что сам класс то же объект и определением класса можно оперировать как объектом. Исходя из этого декоратор может делать нечто такое, например:

def add_field(cls):[
       cls.foo = 'decorator here'

Кроме того сами классы могут выступать как декораторы, то есть класс-декоратор это такой класс, который должен в результате своей работы вернуть другой класс, класс который декорируем.

Исправление pylin, :

С учетом некоторых дополнений: декоратор класса это функция, которая срабатывает при определении класса. Декоратор класса, основан на том свойстве Python, что сам класс то же объект и определением класса можно оперировать как объектом. Исходя из этого декоратор может делать нечто такое, например:

def add_field(cls): cls.foo = 'decorator here'

Кроме того сами классы могут выступать как декораторы, то есть класс-декоратор это такой класс, который должен в результате своей работы вернуть другой класс, класс который декорируем.

Исправление pylin, :

С учетом некоторых дополнений: декоратор класса это функция, которая срабатывает при определении класса. Декоратор класса, основан на том свойстве Python, что сам класс то же объект и определением класса можно оперировать как объектом. Исходя из этого декоратор может делать нечто такое, например: def add_field(cls): cls.foo = 'decorator here' Кроме того сами классы могут выступать как декораторы, то есть класс-декоратор это такой класс, который должен в результате своей работы вернуть другой класс, класс который декорируем.

Исходная версия pylin, :

С учетом некоторых дополнений: декоратор класса это функция, которая срабатывает при определении класса. Декоратор класса, основан на том свойстве Python, что сам класс то же объект и определением класса можно оперировать как объектом. Исходя из этого декоратор может делать нечто такое, например: def add_field(cls): cls.foo = 'decorator here' Кроме того сами классы могут выступать как декораторы, то есть класс-декоратор это такой класс, который должен в результате своей работы другой класс, класс который декорируем.