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

标签 python python-3.x pep570

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.

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

>>> chr(i=65)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: chr() takes no keyword arguments

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

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

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

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

>>> def f(*, a, b):
...     print(a, b)
...

>>> f(1, 2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() takes 0 positional arguments but 2 were given

>>> f(a=1, b=2)
1 2

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

最佳答案

PEP 570 ,这只是一个草稿,所以不能在纯 Python 中创建位置参数。然而,这可以在用 C 语言为 Python 编写的函数中完成。

关于python - 如何创建一个只接受位置参数而不接受关键字参数的python函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54252179/

相关文章:

python-3.x - 无法安装tensorflow模型服务器

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

Python:当我们的脚本触发并忘记时,如何制作交互式工具?

python - 通过索引或坐标访问二维数组中的元素

python - 基于FFT的音频分类

python - Django 2.1+ 批量更新记录及其相关记录的数量?

python-3.x - Python3 ctypes c_char数组转换为不可变字节类型?

python - 如何获取组合框中所选项目的索引?