Его цель — упростить наши коды. Тем не менее, это не является обычным и необязательным.
Я предполагаю, что все функции с *args и **kwargs также могут быть представлены формой без них.
Пр1. Если вы используете *args, параметры нашей функции могут быть представлены просто.
def my_function(*args):
for arg in args:
print(arg)
my_function(1, (2, "3", 4), {5})
1
(2, ‘3’, 4)
{5}
def my_function2(args):
for arg in args:
print(arg)
my_function2((1, (2, "3", 4), {5}))
1
(2, '3', 4)
{5}
Пр2. Используйте test(4, *aa), отличный от test(4, aa), если ваша функция с *args
def test(var, *args):
print(str(var))
for m in args:
print('args:' + str(m))
aa = ('t', 7, 'yy')
test(4, *aa)
4
аргументы:t
аргументы:7
аргументы:yy
def test2(var, args):
print(str(var))
for m in args:
print('args:' + str(m))
aa = ('t', 7, 'yy')
test2(4, aa)
4
аргументы:t
аргументы:7
аргументы:yy
Ex3.
def test3(**kargs):
for n in kargs:
print('kargs:' + str(n) + ' > ' + str(kargs[n]))
test3(c=6, oo='pp', a22='vv')
kargs:c › 6
kargs:oo › pp
kargs:a22 › vv
def test4(kargs):
for n in kargs:
print('kargs:' + str(n) + ' > ' + str(kargs[n]))
bb = {'c': 6, 'oo': 'pp', 'a22': 'vv'}
test4(bb)
kargs:c › 6
kargs:oo › pp
kargs:a22 › vv
Пр4. Если ваш ключ dict является строковым значением….
def test3(**kargs):
for n in kargs:
print('kargs:' + str(n) + ' > ' + str(kargs[n]))
bb = {'c': 6, 'oo': 'pp', '22': 'vv'}
test3(**bb)
kargs:c › 6
kargs:oo › pp
kargs:a22 › vv
def test4(kargs):
for n in kargs:
print('kargs:' + str(n) + ' > ' + str(kargs[n]))
bb = {'c': 6, 'oo': 'pp', '22': 'vv'}
test4(bb)
kargs:c › 6
kargs:oo › pp
kargs:22 › vv
Ex5.
def test5(var, *args, **kargs):
print(str(var))
for m in args:
print('args:' + str(m))
for n in kargs:
print('kargs:' + str(n) + ' > ' + str(kargs[n]))
aa = ('t', 7, 'yy')
bb = {'c': 6, 'oo': 'pp', '22': 'vv'}
test5(4, *aa, **bb)
4
args:t
args:7
args:yy
kargs:c › 6
kargs:oo › pp
kargs:22 › vv
def test6(var, args, kargs):
print(str(var))
for m in args:
print('args:' + str(m))
for n in kargs:
print('kargs:' + str(n) + ' > ' + str(kargs[n]))
aa = ('t', 7, 'yy')
bb = {'c': 6, 'oo': 'pp', '22': 'vv'}
test6(4, aa, bb)
4
args:t
args:7
args:yy
kargs:c › 6
kargs:oo › pp
kargs:22 › vv