我如何检查是否有全局或局部变量

How can i check if there is a global or local variable

我想检查该变量是否存在,如果存在则打印它。

x = 10 

def example(): 

z = 5

print("X (Global variable) : ",x) 
print("Z (example() : ",z)

example() 

print(z) 

当我添加 print(z) 时,它显然会引发错误,因为没有名为 z 的变量。

谢谢大家的回答。 (特别是 Jasper、kevin 和 icantcode)

x = 10 
def example(): 

z = 5

example() 


try:
    print(z)
except NameError:
    print("There is no global variable called Z! ")

内置方法 locals()globals() return local/global 变量名及其值的字典。

if 'z' in locals():
    print(z)
try:
    print(z)
 except NameError:
    print("No variable named z!")

此代码尝试打印 z,如果没有名为 z 的变量,它将 运行 except.

下的代码

最直接的方法是尝试使用它,如果失败则做其他事情:

try:
    something_with(z)
except NameError:
    fallback_code()

你也可以查locals()globals()

的词典
if 'z' in locals() or 'z' in globals():
    print(z)
else:
    fallback_code()