从用户输入创建动态命名的变量

Sha*_*oda 10 python

我正在学习编程,并且正在学习Python作为我的第一语言.作为练习,我正在尝试编写一个地址簿程序.用户使用命令提示符创建新联系人.新联系人是Contacts类的对象实例.

我知道如何从代码中实例化一个类对象,但是如何根据用户输入创建一个带有变量名的对象呢?假设我提示用户输入一个名称 - 如何获取该信息并将其用于我的新对象的变量名称?

谢谢!!

jdi*_*jdi 20

从评论中可以看出,你问的是在这里不止一次被问到的事情."我怎样才能创建动态命名的变量".

答:不要这样做.有可能有更好的方法来解决问题.

说明:

如果您要创建动态命名的变量,那么在创建变量后,您就无法很好地处理它们.当然有办法检查全局和局部范围,看看有什么.但事实是,您应该对正在创建的内容有明确的控制权.

你应该做的是将它们放入字典中:

people = {}
name = raw_input("What name? ") # "person"
people[name] = User(name)

print people
# {'person': <User: "person">}

print people.keys()
# ['person']
Run Code Online (Sandbox Code Playgroud)

这样您就不会在命名空间中创建任意变量.您现在有一个键和对象的字典作为值.它也是一种允许用户提供的输入来驱动变量命名的蠕虫.

有关更多信息,请在此处搜索相同的主题,并查看许多不应该执行此操作的示例.无论你看到哪些例子告诉你如何使用globals()等,请采取我的建议,不要走那条路.爱和享受......也许拥抱和亲吻,你的字典.

参考文献:

  • 好的,现在我们已经解决了......不要这样做.它似乎是人们学习编程的常见问题.每当问题"我如何创建动态变量名称"时,答案总是"有一个更好的解决方案来解决你的问题".我会更新我的答案 (2认同)