Его цель — упростить наши коды. Тем не менее, это не является обычным и необязательным.
Я предполагаю, что все функции с *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