* 分隔位置传参和关键字传参
def test(*, name, age):
pass
test(1,2)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: test() takes 0 positional arguments but 2 were given
test(name='11', age=1)
def test(name, *, age):
pass
test('11', 1)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: test() takes 1 positional argument but 2 were given
test('11', age=1)
- *args
可变长位置传参 - **kwargs
可变长关键字传参
def test(name, age, sex='男', *args, **kwargs):
print(name, age, sex, args, kwargs)
test('lili', 11, '性格好', {"sports": 'basketball'})
lili 11 性格好 ({'sports': 'basketball'},) {}
test('lili', 11, '性格好', **{"sports": 'basketball'})
lili 11 性格好 () {'sports': 'basketball'}
def test(name, age, *args, sex='男', **kwargs):
print(name, age, sex, args, kwargs)
test('lili', 11, '性格好', {"sports": 'basketball'})
lili 11 男 ('性格好', {'sports': 'basketball'}) {}
test('lili', 11, '性格好', **{"sports": 'basketball'})
lili 11 男 ('性格好',) {'sports': 'basketball'}