无名关键字参数列表[重复]

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

Python函数参数列表中的孤星“*”是什么意思?

我在scikit-learn的源码中找到的,以前没见过。我熟悉位置参数和关键字参数(*args、**vargs)的概念。我假设,这里它与 _deprecate_positional_args 装饰器有关,但是即使没有装饰器,在纯 Python 3.7 中似乎也允许使用孤星作为函数参数的语法。

我的猜测是,它使得不可能在星号之后指定任何关键字参数作为位置参数(这对于名为“safe”的参数实际上是有意义的)。

# Part of https://github.com/scikit-learn/scikit-learn.git
# commit 7117a6313791db6f8b737bac28c1f47277a68cfb
# Quoting from sklearn/base.py:
# ...
from .utils.validation import _deprecate_positional_args
# ...

@_deprecate_positional_args
def clone(estimator, *, safe=True):
    """Constructs a new estimator with the same parameters.
    (rest omitted)
    """
# ...
python parameters arguments positional-argument
1个回答
1
投票

我的猜测是,它使得不可能在星号之后指定任何关键字参数作为位置参数(这对于名为“safe”的参数实际上是有意义的)。

你是对的,单独的

*
后面的参数被称为仅关键字参数,此功能由PEP 3102定义。

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