Предисловие: я потратил много ЧАСОВ, пытаясь прочитать подобные посты, подобные этой, и пробовать много разных вещей, но ради жизни я не могу понять, что я делаю неправильно, или почему это не такт работа.Может кто-нибудь дать мне ответ ELI5 относительно того, что я делаю неправильно, или почему это не работает так, как я ожидаю?
class User:
def __init__(self, first, last, age):
self.firstname = first
self.lastname = last
self.age = age
dict = {
'User1': {'id': 'id001', 'firstname': 'User', 'lastname': 'One', 'age': 11},
'User2': {'id': 'id002', 'firstname': 'User', 'lastname': 'Two', 'age': 22},
'User3': {'id': 'id003', 'firstname': 'User', 'lastname': 'Three', 'age': 33}
}
for user in dict:
u = dict[user]
user = User(u['firstname'], u['lastname'], u['age'])
try:
print(User1.lastname)
except Exception as e:
print(e)
finally:
print(user.lastname)
Что возвращает:
name 'User1' is not defined
Three
Очевидно, user
создается три раза с данными из dict
, причем данные User3
являются последними.
Если я сделаю:
for user in dict:
print(user)
, он напечатает:
User1
User2
User3
Так что я ожидаю, что цикл for запустится, и тогда ябыть в состоянии позвонить User1.firstname
, User2.lastname
или User3.age
, и это даст мне те же данные, что и в dict
(пользователь, два, 33 соответственно), но это явно не так.
Помощь?