-3

python代码下面做什么?

def pow(x, y, z=None, /):
    r = x**y
    if z is not None:
        r %= z
    return r
4

3 回答 3

0

调用函数时,不能使用关键字参数指定仅位置参数的值。pow(1, 2, 3)将工作; pow(x=1, y=2, z=3)将不会。

于 2019-06-27T16:38:02.923 回答
0

它在PEP-0570中有很好的描述。如果禁止对标记为仅位置的参数使用命名参数:

>>> pow(x=5, y=3)
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: pow() takes no keyword arguments

你只能这样称呼它pow(5, 3)

于 2019-06-27T16:39:14.623 回答
0

它已经在 Python 3.8 的官方文档中的Positional-only 参数中定义。

有新的语法 (/) 表示必须在位置上指定某些函数参数(即,不能用作关键字参数)。这与用 C 实现的函数的 help() 显示的符号相同(由 Larry Hastings 的“Argument Clinic”工具生成)。例子:

现在 pow(2, 10) 和 pow(2, 10, 17) 是有效的调用,但是 pow(x=2, y=10) 和 pow(2, 10, z=17) 是无效的。

有关完整说明,请参阅PEP 570

于 2019-06-27T16:39:46.653 回答