因此,我想检查并验证给定的变量“abc”是否存在并且是真的。如果变量存在并且是False,那么我希望它去别的地方。这里是我如何得到它在Python中工作:检查环境变量是否存在并设置为True
env = os.environ.copy()
if "abc" in env and env['abc'] == "True":
print "Works"
else:
print "Doesn't work"
有没有更好的方式来做到这一点?
因此,我想检查并验证给定的变量“abc”是否存在并且是真的。如果变量存在并且是False,那么我希望它去别的地方。这里是我如何得到它在Python中工作:检查环境变量是否存在并设置为True
env = os.environ.copy()
if "abc" in env and env['abc'] == "True":
print "Works"
else:
print "Doesn't work"
有没有更好的方式来做到这一点?
您可以检查,看看是否变量是由globals()
和locals()
返回的字典。 (感谢您亚伦提醒我,以添加完整的代码)
对于本地变量:
if locals().get('abc'):
print(abc)
对于一个全局变量:
if globals().get('abc'):
print(abc)
对于一个环境变量:
if os.environ.get('abc')=='True':
#abc is set to True
更多的信息在这里:
https://docs.python.org/3/library/functions.html#locals https://docs.python.org/3/library/functions.html#globals
您可以使用:
env.get("abc", False)
假,如果是 “ABC” 是不是在ENV的默认值。
这足以从ENV得到它,我觉得
env.get('abc')
你可以使用try except块。
try:
# Try calling ABC here anyway you like
# Here I am just printing it
print(abc)
except NameError:
print("Variable ABC does not exist")
如果你这样做,你应该做'除了NameError:'而不是盲目地捕捉任何异常 – trentcl
'env.get(“ABC”,FALSE)== TRUE' – inspectorG4dget
相同的答案中的所有的海誓山盟10秒该字符串是令人印象深刻...... – Aaron
你实际上是寻找价值的字符串“真”,还是你在寻找布尔型的“真”? – idjaw