一尘不染

Python-函数参数中的星号?

python

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

当我查看pickle模块时,我看到了:

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。


阅读 1031

收藏
2020-02-17

共1个答案

一尘不染

Bare *用于强制调用方使用命名参数-因此,如果*没有以下关键字参数,则无法将函数定义为参数。

2020-02-17