Python 如何检查是否存在全局变量或局部变量

Python 如何检查是否存在全局变量或局部变量,python,function,variables,global,local,Python,Function,Variables,Global,Local,我想检查这个变量是否存在,如果存在就打印它 x = 10 def example(): z = 5 print("X (Global variable) : ",x) print("Z (example() : ",z) example() print(z) 当我添加print(z)时,它显然会引发一个错误,因为没有称为z的变量 谢谢你们的回答。(特别是贾斯珀、凯文和icantcode) 内置方法locals()和globals()返回本地/全局变量名及其值的字典 if '

我想检查这个变量是否存在,如果存在就打印它

x = 10 

def example(): 

z = 5

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

example() 

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

谢谢你们的回答。(特别是贾斯珀、凯文和icantcode)


内置方法
locals()
globals()
返回本地/全局变量名及其值的字典

if 'z' in locals():
    print(z)

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

最直接的方法是尝试使用它,如果失败,则执行其他操作:

try:
    something_with(z)
except NameError:
    fallback_code()
您还可以查看
locals()
globals()的词典


z=5
应该缩进吗?如果是这样的话,
print(“Z(example():”,Z)
也会导致
namererror
。在什么情况下,您会不知道自己定义了哪些变量?在您的情况下,我认为只需
print(locals())
print(globals())
将为您提供理解作用域所需的信息。不要使用bare
except
。您需要类似于
的内容,但不包括NameError
@bonum77不,这两者都不可能。
try:
    print(z)
 except NameError:
    print("No variable named z!")
try:
    something_with(z)
except NameError:
    fallback_code()
if 'z' in locals() or 'z' in globals():
    print(z)
else:
    fallback_code()