2024-03-29 12:35:58 发布
网友
我需要去掉一个字符串的引号,这样它就可以在代码中使用了。不一定是一个变量,但这也很有用。我需要反字符串的字符串将在if语句中使用:ex
eval(j[0]) and eval(j[2])
这样就可以看到
if (eval(j[0]) and eval(j[2])) == 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来说是不好的。你知道吗
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')
使用由字符串键入的字典几乎总是比使用eval()做任何事情都要好。你知道吗
myData = {} myData["g"] = 0 if (myData[j[0]] and myData[j[2]]) == 1: blah()
尝试使用strip:eval(j[0].strip('"'))。另外,尽量避免使用eval。你知道吗
strip
eval(j[0].strip('"'))
eval
以下是一些方法:
上述方法可行,但被认为是危险的。如果用户将
v
设置为import os; os.system('rd /s/q "c:/program files"')
之类的值,那么对eval来说是不好的。你知道吗这也行得通,但也不太理想。你知道吗
最好是将这样的项存储在键/值对字典中,然后在那里查找它们:
使用由字符串键入的字典几乎总是比使用eval()做任何事情都要好。你知道吗
尝试使用
strip
:eval(j[0].strip('"'))
。另外,尽量避免使用eval
。你知道吗相关问题 更多 >
编程相关推荐