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 上。

最佳答案

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

this answerPython 3 documentation了解更多详情。

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

相关文章:

python - 使用 Python 对 Power BI REST API 进行身份验证时出现问题

python - Count 每个等级在一个文件中出现的次数

python - 在 setup_method 上使用 pytest.fixture

python - psycopg2.errors.InFailedSqlTransaction : current transaction is aborted, 命令被忽略,直到事务 block 结束

java - 将数据传递给 Play Framework 中的 @Finally 注释方法

c++ - 我将如何在 C++ 中将函数作为参数传递

python - 如何从 Heroku Node 生成 Python 进程

python - 如何对齐 tkinter 小部件?

python - PyQt5 QGraphicsView透明背景

javascript - 如何使用 JavaScript 将访问参数传递到 HTML 页面