在Python函数中,参数*中单独的*表示[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

我正在阅读Python 3 Metaprogramming 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

在函数的参数中,在关键字参数funcprefix之间有一个*。我已经测试了带有或不带有星形的装饰器,并且在两种情况下都可以使用。

我的问题是-*的目的是什么?

python function-parameter
1个回答
1
投票

它标记只能由位置提供的参数的结尾。必须将*之后的参数指定为关键字参数。有关更多信息,请参见the PEP

© www.soinside.com 2019 - 2024. All rights reserved.