我遇到了python类和字符串的问题我想使用raw_input给出的字符串来命名一个类对象即使现在我也不会这样做。这就是我试图做到的但是代码没有用。我搜索了stackoverflow.com上的很多帖子,但没有一个被回答;我是Python的新手,我知道类和实例是如何工作的,但我不知道任何帮助我解决这个问题的函数。
class example:
def _init_(self ,name):
self.name=name
input1 = raw_input("")
input1 = example()
答案 0 :(得分:1)
我不建议您这样做,但有一种方法是使用exec()
:
class Example:
pass
name = raw_input("Enter name: ")
exec('{} = Example()'.format(name))
假设用户输入了" abcd"在提示符下,类Example
的实例将绑定到名为" abcd"的变量:
>>> abcd
<__main__.Example instance at 0x7f841fb45908>
很少有任何真正的理由这样做,我不推荐这种方法,因为exec()
可以执行任意用户输入,从而产生严重的安全问题。
另一种方法是更新globals()
字典:
name = raw_input("Enter name: ")
globals()[name] = Example()
但这可能不是最好的事情,并且通常有一种更好的方式取决于你想要达到的目标。
更安全的方法是使用一个字典,用户的输入作为关键词:
user_vars = {}
name = raw_input("Enter name: ")
user_vars[name] = Example()
>>> user_vars['abcd']
<__main__.Example instance at 0x7f841fb45908>