Vous pouvez recevoir tous les arguments dont vous ne savez pas combien viendront.
python
def test(*args, **kwargs):
print(args)
print(kwargs)
test(1, 2, 'hoge')
output
(1, 2, 'hoge')
{}
** Entrez kwargs avec dict ().
python
def test(*args, **kwargs):
print(args)
print(kwargs)
test(1, 2, 3, 4, 5, col=4, row=5)
output
(1, 2, 3, 4, 5)
{'col': 4, 'row': 5}
Ce sera un tuple vide () et un dict vide ().
python
def test(*args, **kwargs):
print(args)
print(kwargs)
test()
output
()
{}
Vous pouvez transmettre l'argument reçu tel quel
python
def func1(a, b, c=2):
d = a + b * c
return d
def func2(*args, **kwargs):
d = func1(*args, **kwargs)
return d
print(func2(1, 2))
print(func2(1, 2, c=5))
output
5
11
En fait, si le nombre de * est le même, le nom de l'argument peut être changé librement. Vous pouvez utiliser * a, * hoge au lieu de * args, et ** b, ** fuga etc. au lieu de ** kwargs.
python
def test(*a, **b):
print(a)
print(b)
test(1, 2, 3, 4, 5, col=4, row=5)
output
(1, 2, 3, 4, 5)
{'col': 4, 'row': 5}
Essayons!
Recommended Posts