Python函数参数中的'\'是什么意思?

Python函数参数中的'/'是什么意思?

在这里遇到的, 这是源码:

>>>import  sys
>>>sys.std.readlines()
>>> # 它提示框中的['/' makes preceding arguments as positional-only] 什么意思啊?

图片描述
小白求解答, 如果Python官方有解释, 顺便发我一下链接, 谢谢!

阅读 6.2k
2 个回答

参考文档 PEP 457 -- Syntax For Positional-Only Parameters
https://www.python.org/dev/pe...

python 的参数有两种

  1. 位置参数(positional argument)
  2. 关键词参数(keyword argument)

比如 def foo(a, b=1): pass ,这里的 a 是位置参数,b 是关键词参数。

另外两种常见的定义方式如

def sum(*args):
    pass
    
def option(**kwargs):
    pass

其中 args 表示参数数组(list 类型),kwargs 表示参数字典(dict 类型)。
对应的调用方式如

sum(1, 2)
option(a=1, b=2)

最后, def readlines(hints=-1, /): pass , 这里的 / 不代表任何参数,它指示前面的都是位置参数,没有关键词参数。因此 readlines(1) 可以,但 readlines(hints=1) 不可以。
目前(2018年8月29日),这种语法只在 python C 里面定义,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 才可以结束。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏