Его цель — упростить наши коды. Тем не менее, это не является обычным и необязательным.

Я предполагаю, что все функции с *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