函数参数中没有星号?函数参数中的简单星号是做什么的?当我查看泡菜模块时,我看到了以下内容:(http:/docs.python.org/3.3/Library/泡菜.html#泡菜.dump)pickle.dump(obj, file, protocol=None, *, fix_imports=True)我知道前面有一个星号和两个星号(对于可变的参数),但这是没有先例的。我敢肯定这和泡菜无关。这可能只是发生这种情况的一个例子。当我把这个发给翻译时,我才知道它的名字:>>> def func(*):... pass...
File "<stdin>", line 1SyntaxError: named arguments must follow bare *如果有关系,我使用python3.3.0。
3 回答

紫衣仙女
TA贡献1839条经验 获得超15个赞
def func(*, a, b): print(a) print(b)func("gg") # TypeError: func() takes 0 positional arguments but 1 was givenfunc(a="gg") # TypeError: func() missing 1 required keyword-only argument: 'b'func(a="aa", b="bb", c="cc") # TypeError: func() got an unexpected keyword argument 'c'func(a="aa", b="bb", "cc") # SyntaxError: positional argument follows keyword argumentfunc(a="aa", b="bb") # aa, bb
def func(*, a, b, **kwargs): print(a) print(b) print(kwargs)func(a="aa",b="bb", c="cc") # aa, bb, {'c': 'cc'}
添加回答
举报
0/150
提交
取消