Python函数参数中的'/'是什么意思?
在这里遇到的, 这是源码:
>>>import sys
>>>sys.std.readlines()
>>> # 它提示框中的['/' makes preceding arguments as positional-only] 什么意思啊?
小白求解答, 如果Python官方有解释, 顺便发我一下链接, 谢谢!
在这里遇到的, 这是源码:
>>>import sys
>>>sys.std.readlines()
>>> # 它提示框中的['/' makes preceding arguments as positional-only] 什么意思啊?
小白求解答, 如果Python官方有解释, 顺便发我一下链接, 谢谢!
“https://www.python.org/dev/pe...”
上面要翻墙。
其实我也不太懂的,positional argument 大概意思是按规定排序的,不能用 arg=1 或者 (a,b,c)或(b,c,a)随意排。
那个forward slash也就是正斜杠def func(a,/,b) 表示前面的参数是positional only argmument。
不过呢,我不了解这种syntax怎么可以运行的,因为斜杠一般是不能做参数啊? 希望有其人帮忙解答。
这或许只是文档上作为提示作用吧?
对了,我在idle上尝试过sys.stdin.readlines(1)和sys.stdin.readlines(-1)是有区别的,前者我输入字符后直接换行就结束了输入状态,而后者我要ctrl+D 才可以结束。
1 回答9.7k 阅读✓ 已解决
2 回答5.4k 阅读✓ 已解决
2 回答3.7k 阅读✓ 已解决
3 回答4.5k 阅读
3 回答1.5k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
参考文档 PEP 457 -- Syntax For Positional-Only Parameters
https://www.python.org/dev/pe...
python 的参数有两种
比如
def foo(a, b=1): pass
,这里的 a 是位置参数,b 是关键词参数。另外两种常见的定义方式如
其中 args 表示参数数组(list 类型),kwargs 表示参数字典(dict 类型)。
对应的调用方式如
最后,
def readlines(hints=-1, /): pass
, 这里的 / 不代表任何参数,它指示前面的都是位置参数,没有关键词参数。因此readlines(1)
可以,但readlines(hints=1)
不可以。目前(2018年8月29日),这种语法只在 python C 里面定义,python 尚未实现。