Python:防止"if"楼梯?

Ble*_*der 3 python if-statement list

每当我编写需要大量条件的东西时,我最终会这样做:

if foo:
  if bar:
    if foobar:
      if barfoo:
        if foobarfoo:
          if barfoobar:
            # And forever and ever and ever
Run Code Online (Sandbox Code Playgroud)

我无法写,if foo and bar and foobar and ...因为我检查了行if foo[1] == 'bar'if某处的值列表元素(),如果列表索引不存在,我会收到错误.

是否有条件检查这样的事情或替代方法的快捷方式?谢谢.

Sin*_*ion 9

我不能写如果foo和bar和foobar和...因为我在一个if的某个地方调用list元素,如果列表索引不存在,我得到一个错误.

在python中,and短路.如果表达式的左侧为false,则根本不评估右侧.

foo = dict()

if 'bar' in foo and foo['bar']:
    doSomething()
Run Code Online (Sandbox Code Playgroud)


Ada*_*erg 5

快速失败:

if not foo:
    return

if not foobar:
    return
Run Code Online (Sandbox Code Playgroud)

等等.