我...问个问题, 正文中的 Python 代码. 为什么可以正确执行?

2020-12-26 19:33:37 +08:00
 chaleaoch
def test_func(a, /, b):
    print(a, b)


test_func(1, 2)

函数参数中的 / 是个啥? black 和 flake8 都提示异常,但是确实是可以正确执行的. python 3.9

2140 次点击
所在节点    Python
7 条回复
jdhao
2020-12-26 19:36:19 +08:00
不懂,没见过,楼下回答
chaleaoch
2020-12-26 19:40:06 +08:00
查到了. 仅限位置参数.
Dreax
2020-12-26 20:18:01 +08:00
renmu123
2020-12-26 20:19:52 +08:00
3.7 还是 3.8 加入的新语法
abersheeran
2020-12-26 21:30:46 +08:00
/ 之前的参数都不能以 name=value 这种形式传参。

与之类似功能的是 def f(a, *, b): ... * 之后的都必须以 name=value 的形式传参。
XIVN1987
2020-12-26 23:33:47 +08:00
@abersheeran
前者是 pos-only
后者是 kw-only
crayygy
2020-12-27 10:48:31 +08:00
Python 3.6 3.7 3.8 好像都有一些新增的语法,之前遇到过一次脚本是基于 3.6 写的,结果在 Ubuntu 16.04(预装的 Python 3.5 以下的)就怎么也跑不过,查了以后才知道

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX