我有一个对象列表。我有一个用户输入的字符串。我需要检查并查看字符串是否在对象列表中。
例如:
string = "book"
object_list = [book, paper, pencil]
if eval(string) in object_list:
#do this, etc
只要字符串在列表中,就可以正常工作。如果字符串是其他内容,例如: string ='ruler'
然后if eval(string)...
语句出错:
NameError: 'ruler' is undefined.
答案 0 :(得分:2)
不要使用eval - 只需要创建一个dict映射,例如:
dispatch = {'book': book, ...}
然后使用它并让回溯发生 - 更加受控制......
或最坏情况下使用globals()
:
if globals()[string] in object_list:
# do something...
答案 1 :(得分:1)
如果您需要检查字符串是否在列表中,为什么不使用,
if string in object_list:
#code