"关键字参数"与常规参数有何不同?不能传递所有参数name=value而不是使用位置语法?
python arguments keyword optional-parameters named-parameters
由于Python C级API的开发方式,许多内置函数和方法实际上没有参数的名称.
我发现它真的很烦人因为我无法通过查看文档来了解它.例如,eval
eval(表达式,globals = None,locals = None)
然后我写了这行代码
print(eval('a+b', globals={'a':1, 'b':2}))
Run Code Online (Sandbox Code Playgroud)
并得到了TypeError: eval() takes no keyword arguments.那么有这种功能的完整列表吗?如何知道函数是否允许包含关键字参数?
python中的许多内置函数不采用关键字参数。例如chr功能。
>>> help(chr)
Help on built-in function chr in module builtins:
chr(i, /)
Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
Run Code Online (Sandbox Code Playgroud)
尝试将值传递给chr使用关键字参数不起作用。
>>> chr(i=65)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: chr() takes no keyword arguments
Run Code Online (Sandbox Code Playgroud)
我知道/该chr功能的帮助文本中的字符意味着它不会带有关键字参数。
如何定义不包含关键字参数的函数?当然,我想定义一个仅接受位置参数的函数。
这可能会被标记为重复项,但至少这样我会得到答案。我找不到这个问题的StackOverflow答案。
我学到的另一个类似功能是创建一个不带位置参数的函数。
>>> def f(*, a, b):
... print(a, b)
...
>>> f(1, 2)
Traceback (most recent call last):
File "<stdin>", …Run Code Online (Sandbox Code Playgroud)