Python- использовать значение pop как имя объекта
Я принимаю пользовательский ввод и создаю объекты с его помощью. Итак, у меня есть список допустимых имен объектов (AE). Я решил, что могу сделать pop(0) и использовать возвращаемое значение в качестве имени объекта. Таким образом, при входе никогда не появляется повторяющееся имя объекта. Вот что у меня есть, я просто не могу понять, как правильно присвоить вытесненное значение имени объекта (Net - это определенный класс в начале программы).
userIP = None
name_list = ['A', 'B', 'C', 'D', 'E']
while True:
if userIP == 'end':
break
userIP = input("Enter IP (type 'end' to exit): ")
userMask = input("Enter Mask: ")
name_list.pop(0) = Net(userIP, userMask)
print("The object just created would print here")
2 ответа
Положите результаты в словаре. Не пытайтесь создавать переменные с указанными именами. Так лежит безумие.
net_dict = {}
# ...
name = name_list.pop(0)
net_dict[name] = Net(userIP, userMask)
print(net_dict[name])
Если у вас есть их в контейнере, вы можете обнаружить, что вам не нужны имена. Как называются, другими словами? Если ответ просто "держать их в некотором порядке", используйте список:
net_list = []
# ...
net_list.append(Net(userIP, userMask))
print(net_list[-1])
Я просто не могу понять, как правильно присвоить вытесненное значение имени объекта
Это нелегко сделать, потому что это не очень полезно. Что если вы заставите его работать, и вы захотите использовать его позже?
name_list.pop(0) = Net(userIP, userMask)
print ?.userMask
Что вы кладете для ?
когда вы не знаете, какое имя переменной использовалось?
Правильный подход к этому - ответ @kindall, или подобный. Но это возможно ( как вы можете динамически создавать переменные через цикл while?), Но не рекомендуется.