Объяснить работу kwargs

Кто нибудь может объяснить, почему в таком коде я не могу получить результат принта spisok, а получаю ошибку? Чем в данном случае является сам spisok и возможно ли его как-то вывести?

def get_person(**spisok):
    for one, two in spisok.items():
        print(one, two)
        
get_person(Name = 'Max', Age = 20, Has_car = True)

print(spisok)

Ответы (1 шт):

Автор решения: Elusha

Переменная с именем spisok существует только внутри функции. Ты можешь использовать её только пока задаёшь алгоритм, логику работы твоей функции во время её объявления. Когда ты вызываешь функцию, у тебя не создаётся никаких переменных за пределами функции. После выполнения кода из функции у тебя ничего не остаётся, если ты не задал для неё такого поведения.
Это можно поправить, написав в начале функции: global <имя переменной>, но так лучше не делать, чтобы не оставлять в памяти лишнего мусора.
Лучше в функции указать return <переменная>, а потом при вызове функции присвоить какой-то переменной значение, которое вернёт функция.

→ Ссылка