python - 函数参数中的空星号?

标签 python python-3.x parameter-passing

函数参数中的星号有什么作用?

当我看着 pickle module ,我看到这个:

pickle.dump(obj, file, protocol=None, *, fix_imports=True)

我知道参数前面有一个单星号和双星号(对于可变数量的参数),但这并不在前面。而且我很确定这与泡菜无关。这可能只是发生这种情况的一个例子。当我把这个发给口译员时,我才知道它的名字:
>>> def func(*):
...     pass
...
  File "<stdin>", line 1
SyntaxError: named arguments must follow bare *

如果重要的话,我使用的是 python 3.3.0。

最佳答案

*用于强制调用者使用命名参数 - 所以你不能用 * 定义函数当您没有以下关键字参数时作为参数。

this answerPython 3 documentation更多细节。

关于python - 函数参数中的空星号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55365939/

相关文章:

python - 如何在 Flask 上显示我的 IP 地址?

Python:TypeError:* 之后的参数必须是一个序列

python - 正整数位移产生负整数......这怎么会发生?

Java 函数传递和返回复杂数据类型

Python:安装 pip 时出现权限被拒绝错误

python-3.x - 由于负索引查找,Keras 嵌入层中的 InvalidArgumentError

python-3.x - 向多边形添加标签

javascript - 如何将变量从一个函数传递到另一个函数?

c++ - 如何从外部将值传递给结构函数?

python - 自定义 django-revproxy 权限