如何检查变量是否存在?

2024-04-26 10:19:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想检查变量是否存在。现在我正在做这样的事情:

try:
   myVar
except NameError:
   # Do something.

有没有其他方法没有例外?


Tags: 方法事情dosomethingtryexceptmyvarnameerror
3条回答

一个简单的方法是首先初始化它,并说myVar = None

之后:

if myVar is not None:
    # Do something

在任何语言中,使用尚未定义或设置(隐式或显式地)的变量几乎总是一件坏事,因为它常常表明程序的逻辑没有被正确地考虑,并且很可能导致不可预测的行为。

如果您需要在Python中使用来执行此操作,下面的技巧(与您的技巧类似)将确保变量在使用前具有一些值:

try:
    myVar
except NameError:
    myVar = None

# Now you're free to use myVar without Python complaining.

然而,我仍然不相信这是一个好主意-在我看来,你应该尝试重构你的代码,这样就不会发生这种情况。

要检查局部变量的存在性,请执行以下操作:

if 'myVar' in locals():
  # myVar exists.

要检查全局变量的存在性,请执行以下操作:

if 'myVar' in globals():
  # myVar exists.

要检查对象是否具有属性,请执行以下操作:

if hasattr(obj, 'attr_name'):
  # obj.attr_name exists.

相关问题 更多 >