【发布时间】:2020-02-27 18:27:32
【问题描述】:
我正在学习 David Beazley 提供的出色的 Python 3 Metaprogramming 教程。
其中有一个如下所示的装饰器(幻灯片 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 之间。我已经测试了带或不带星的装饰器,在这两种情况下它都有效。
我的问题是 - 如果有的话,* 的目的是什么?
【问题讨论】: