Python函数的参数列表中的孤星“*”是什么意思
我在scikit learn的源代码中找到了它,以前从未见过它。我熟悉位置参数和关键字参数(*args,**varg)的概念。我假设,这里它与_deprecate_positional_args decorator有关,但是在纯Python 3.7中,即使没有decorator,也允许将孤星语法作为函数参数
我的猜测是,这使得不可能将星号后面的任何关键字参数指定为位置参数(对于名为“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)
"""
# ...
我的猜测是,这使得不可能将星号后面的任何关键字参数指定为位置参数(对于名为“safe”的参数来说,这实际上是有意义的)
您是对的,lone
*
后面的参数称为仅关键字参数,此功能由PEP 3102定义相关问题 更多 >
编程相关推荐