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())
将为您提供理解作用域所需的信息。不要使用bareexcept
。您需要类似于的内容,但不包括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()