Я изучаю отличный учебник Метапрограммирование Python 3 от Дэвид Бизли.
В нем есть декоратор, который выглядит следующим образом (слайд 50):
from functools import wraps, partial
def debug(func=None, *, prefix=''):
'''
Decorator with or without optional arguments
'''
if func is None:
return partial(debug, prefix=prefix)
msg = prefix + func.__qualname__
@wraps(func)
def wrapper(*args, **kwargs):
print(msg)
return func(*args, **kwargs)
return wrapper
В параметрах функции есть *, который находится между параметрами ключевого слова func
и prefix
. Я протестировал декоратор со звездой или без нее, и в обоих случаях он работает.
Мой вопрос: что, если таковые имеются, является целью *?