制作字符串常规文本,例如“g”使得它可以用作变量g = 0

时间:2012-05-04 00:36:48

标签: python python-3.x python-2.7

我需要从字符串中取出引号,以便可以在代码中使用它。不一定是变量,但也可能有用。我需要解串的字符串将在if语句中使用:ex。

eval(j[0]) and eval(j[2])

这样就可以了解

if (eval(j[0]) and eval(j[2])) == 1:

3 个答案:

答案 0 :(得分:2)

使用字符串键入的字典几乎总是比使用eval()做任何事情更好。

myData = {}
myData["g"] = 0
if (myData[j[0]] and myData[j[2]]) == 1: blah()

答案 1 :(得分:1)

以下是一些方法:

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"')之类的对eval不好的内容。

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')

答案 2 :(得分:0)

尝试使用stripeval(j[0].strip('"'))。另外,请尽量避免使用eval