使字符串成为规则文本,例如“g”,以便可以用作变量g=0

2024-03-29 12:35:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要去掉一个字符串的引号,这样它就可以在代码中使用了。不一定是一个变量,但这也很有用。我需要反字符串的字符串将在if语句中使用:ex

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

这样就可以看到

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

Tags: and字符串代码ifeval语句引号ex
3条回答

以下是一些方法:

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

使用由字符串键入的字典几乎总是比使用eval()做任何事情都要好。你知道吗

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

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

相关问题 更多 >