问题标签 [pep570]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
945 浏览

python - 如何在python的用户定义函数中实现“仅位置参数”?

如何为用户在 python 中定义的函数实现“仅位置参数”?

0 投票
2 回答
1026 浏览

python - 如何创建一个只接受位置参数而没有关键字参数的python函数?

python 中的许多内置函数不采用关键字参数。比如chr函数。

尝试将值传递给chr使用关键字参数是行不通的。

我知道函数/帮助文本中的字符chr意味着它不会接受关键字参数。

如何定义不带关键字参数的函数?当然,我想定义一个接受参数的函数,但只接受位置参数。

这可能会被标记为重复,但至少这样我会得到答案。我找不到这个问题的 StackOverflow 答案。

我学到的另一个类似功能是创建一个不接受位置参数的函数。

这个问题与我的类似,但它实际上并没有回答我的问题。我仍然不知道如何定义一个不接受关键字参数的函数,比如几个内置函数。

0 投票
2 回答
1325 浏览

python - 使用正斜杠定义仅位置参数时出现语法错误

我在这里关注 python 教程。

我正在尝试使用仅位置参数定义一个函数,但我得到一个无效的语法错误

我已经尝试了命令行解释器并将定义放入文件中

我的定义看起来像这样

我得到通常的语法错误

使用*仅定义关键字参数的函数就可以了。

0 投票
3 回答
108 浏览

python - Python 3.8 中仅位置参数有什么作用?

python代码下面做什么?

0 投票
1 回答
2109 浏览

python - 为什么在 python 3.8 中只使用位置参数?

3.8 中引入了新的“仅位置参数”语法。

从文档中的仅位置参数

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

来自http://northtexasroofing.net/article/10509084.shtml

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


我的问题是,为什么要使用这种语法?

为什么对代码的用户更好?

在我看来,这让用户更难指定他们的论点的实际含义,如果他们愿意的话。

为什么要让用户更难?

我显然错过了一些东西。

0 投票
2 回答
93 浏览

python - Python 3.8 中仅位置参数的极端情况?

我正在摆弄PEP 570中指定并随Python 3.8引入的仅位置参数,我只是想知道一个特定的极端情况。

假设我定义了一个函数如下(无论这是好的设计还是有任何意义):

所以有一个必需参数 ( p1),后跟两个可选参数 (p2p3)。我可以用 just p1, p1and p2or p1and p2and来调用函数p3

但是我无法在保持默认 for 的同时使用p1和参数调用它,因为我无法提供关键字参数:p3p2

这当然会引发TypeError

我找不到关于这种情况的任何讨论或示例,因为PEP 570中的所有示例仅包含一个可选参数作为仅位置参数的一部分:

所以我的问题是:这是预期的行为,让调用者从左到右提供多个可选参数,以强制顺序覆盖它们吗?这实际上是仅位置参数的一个特征吗?

0 投票
1 回答
51 浏览

python - 如何在给定参数字典的情况下调用仅位置参数的函数?

以前我曾经Signature.bind(argument_dict)将参数字典转换为BoundArguments具有.args并且.kwargs可以传递给函数的对象。

但是当函数只有位置参数时,这似乎是不可能的。

在这种情况下,如何以编程方式调用该函数?

BoundArguments这些是从参数字典构造的本机方式吗?

0 投票
1 回答
35 浏览

python - 仅位置参数与 python 3.7 的兼容性

我想使用 PEP570 中定义的新的仅位置参数语法,但我也想保持与 python 3.7 的兼容性(直接运行脚本def f(a, /, b):会直接导致语法错误)。有没有办法做到这一点?

如果没有,对于包维护者,他们是否必须避免使用新功能,直到放弃对 python 3.7 的支持?