def shoe(brand, model):
Здесь вы создаете функцию с именем shoe
.
shoe = {}
Теперь вы создаете переменную с именем shoe
и назначаете ей словарь. Это еще не проблема, поскольку эта переменная является локальной внутри функции. Тем не менее, может быть очень запутанным повторное использование одного и того же имени таким образом. Я предлагаю изменить имя этой переменной.
shoe['brand'] = brand
shoe['model'] = model
return shoe
shoes_list = []
shoe = {}
Теперь вы переназначаете имя shoe
для ссылки на пустой словарь вместо функции, на которую она ссылалась. Это приведет к тому, что последующие вызовы функции с shoe()
завершатся неудачно.
shoe = shoe('Some Brand', 'Some model')
И затем вы попытаетесь присвоить возвращаемое значение функции имени shoe()
. Я предполагаю, что это где вызов функции не удается. Обратите внимание, что если вы исправите это, вам вообще не понадобится shoe = {}
.
print(shoe)
Вы используете одно и то же имя для двух разных вещей: один раз для имени вашей функции и один раз для именивашего словаря. Используйте два разных имени, чтобы решить проблему. В общем, имена функций должны быть глаголами. Таким образом, вы можете сделать get_shoe()
или create_shoe()
для имени функции. Тогда будет хорошо использовать существительное shoe
для словаря.