我需要从字符串中去掉引号,以便它可以在代码中使用。不一定是一个变量,但这也可能是有用的。我需要去字符串的字符串将在 if 语句中使用:例如。
eval(j[0]) and eval(j[2])
这样这将读取
if (eval(j[0]) and eval(j[2])) == 1:
我需要从字符串中去掉引号,以便它可以在代码中使用。不一定是一个变量,但这也可能是有用的。我需要去字符串的字符串将在 if 语句中使用:例如。
eval(j[0]) and eval(j[2])
这样这将读取
if (eval(j[0]) and eval(j[2])) == 1:
使用以字符串为键的字典几乎总是比使用 eval() 执行任何操作要好。
myData = {}
myData["g"] = 0
if (myData[j[0]] and myData[j[2]]) == 1: blah()
这里有几个方法:
a,b,c = 1,2,3
v = 'a'
if eval(v) == 1:
print('true')
上述工作,但被认为是危险的。如果用户设置v
等于类似的东西import os; os.system('rd /s/q "c:/program files"')
,那么评估将是不好的。
a,b,c = 1,2,3
v = 'a'
if globals()[v] == 1:
print ('true')
这也有效,但也不太理想。
最好的方法是将这样的项目存储在键/值对的字典中,然后在那里查找它们:
variables = {}
variables['a'] = 1
variables['b'] = 2
variables['c'] = 3
print(variables)
# A shortcut to initialize variables.
variables = dict(a=1,b=2,c=3)
print(variables)
v = 'a'
if variables[v] == 1:
print('true')
尝试使用strip
: eval(j[0].strip('"'))
。另外,尽量避免使用eval
.