在 Python 函数中,参数中的独立 * 是什么意思
In Python functions what does a stand alone * in the parameters mean
我正在经历精彩的Python 3 Metaprogramming tutorial by David Beazley。
其中有一个装饰器,如下所示(幻灯片 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
之间有一个*。我已经测试了带星号或不带星号的装饰器,在这两种情况下它都能正常工作。
我的问题是 - 如果有的话,* 的目的是什么?
它标志着只能按位置提供的参数的结束。 *
之后的参数必须指定为关键字参数。有关详细信息,请参阅 the PEP。
我正在经历精彩的Python 3 Metaprogramming tutorial by David Beazley。
其中有一个装饰器,如下所示(幻灯片 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
之间有一个*。我已经测试了带星号或不带星号的装饰器,在这两种情况下它都能正常工作。
我的问题是 - 如果有的话,* 的目的是什么?
它标志着只能按位置提供的参数的结束。 *
之后的参数必须指定为关键字参数。有关详细信息,请参阅 the PEP。