检查变量是否存在的Python方式,如果存在,将其与另一个变量进行比较

时间:2019-01-29 10:27:44

标签: python-3.x

我经常发现自己处于一种情况,需要检查是否为变量分配了某些内容,然后将其值与其他值进行比较。

当然,我知道该怎么做,但我想知道是否有更优雅的处理方式。

示例:

def function():
  with suppress(SomeException):
    variable = 10

  if variable and variable > 5:
    # do things

这将给我一个UnboundLocalError异常(在变量分配期间发生SomeException的情况下)。同样,我知道如何编码,因此它将起作用,这是困扰我的编码风格。我想避免创建不必要的局部变量。

1 个答案:

答案 0 :(得分:1)

您说您知道如何做,但是您发布的代码如果没有发生分配将抛出异常。

确实有一种简单的方法可以做到这一点:只是不要编写可能使变量未初始化的代码。

def function():
  variable = None

  if SomeCondition():
    variable = 10

  if variable is not None:
    # do things

请注意,这不会创建任何不需要的局部变量,无论是否分配变量variable都将被创建,但是如果您不分配变量,那么它将被初始化并测试是否已初始化意味着必须抛出并捕获异常,这很慢。简单地初始化它意味着您有一个简单的简单测试。停止尝试优化不需要优化的事物。