15. Декораторы.
- Декоратор - способ задания изменения поведения некоторой функции.
- По сути, представляет собой функцию, которая принимает и возвращает функции.
- Задаются просто созданием подходящей функции.
- Применяются записью перед телом функции после символа @.
def multiply_result(func):
def multiplier(*args, **kwargs):
return -1 * func(*args, **kwargs)
return multiplier
@multiply_result
def get_random_value():
return 4
def get_one_more_random_value():
return 4
print get_random_value()
print get_one_more_random_value()
Некоторые встроенные декораторы
- @classmethod - делает из функции т.н. классовый метод.
- @staticmethod - делает из функции статический метод класса.
class SomeClass(object):
@classmethod
def print_name(cls):
print cls.__name__
class ChildClass(SomeClass):
pass
SomeClass.print_name()
ChildClass.print_name()
class SomeOtherClass(object):
@staticmethod
def print_hello():
print "Hello!"
SomeOtherClass.print_hello()