SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: python
Примитив
def decorator(func):
return func
def basic():
return 'SpecialistOff.NET'
callable = decorator(basic)
callable()
Синтаксический сахар
def decorator(func):
return func
@decorator
def basic():
return 'SpecialistOff.NET'
basic()
def is_error(func):
def wrapper(numerator, denominator):
assert denominator!=0, 'Ошибка деления на нуль'
return func(numerator, denominator)
return wrapper
@is_error
def quotient(numerator, denominator):
return numerator / denominator
quotient(1, 0)
class Broker:
def __init__(self):
self.__routes = {}
def __call__(self, name, *args, **kwargs):
assert name in self.__routes, 'Путь не найден'
func = self.__routes[name]
return func(*args, **kwargs)
def route(self, name):
def wrapper(func):
self.__routes[name] = func
return wrapper
broker = Broker()
@broker.route('/')
def index():
return 'Index'
@broker.route('/about')
def about():
return 'About'
result = broker('/')
print(result)