为了账号安全,请及时绑定邮箱和手机立即绑定

函数参数中没有星号?

函数参数中没有星号?

largeQ 2019-07-11 20:39:17
函数参数中没有星号?函数参数中的简单星号是做什么的?当我查看泡菜模块时,我看到了以下内容:(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

上面的例子是*kwargs

def func(*, a, b, **kwargs):
    print(a)
    print(b)
    print(kwargs)func(a="aa",b="bb", c="cc") # aa, bb, {'c': 'cc'}


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 569 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信