【问题标题】:In Python functions what does a stand alone * in the parameters mean [duplicate]在Python函数中,参数中的独立*是什么意思[重复]
【发布时间】: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

在函数的参数中有一个*,它位于关键字参数funcprefix 之间。我已经测试了带或不带星的装饰器,在这两种情况下它都有效。

我的问题是 - 如果有的话,* 的目的是什么?

【问题讨论】:

    标签: python function-parameter


    【解决方案1】:

    它标志着只能由位置提供的参数的结束。 * 后面的参数必须指定为关键字参数。请参阅the PEP 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-12
      • 2013-10-31
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 2018-11-19
      相关资源
      最近更新 更多