求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)

def con(x):
    if x==3:
        continue #会报错

def con2(x):
    if x == 4:
        continue #会报错
for i in range(0,10):
    con(i)
    con2(i)
    print(i)
    

小弟的意思是,若满足def内的条件,则外部调用的for循环做continue。例如,在例子中,i的值若为3或者4,则continue。因为for中调用的def方法会有很多个,而且实际场景要比例子复杂很多,所以感觉一个一个判断返回值并不是很简洁。想请问大家有没有什么方法,实现小弟的这个述求,非常感谢大家~

阅读 3.3k
2 个回答

可以通过抛个特定异常的方式来影响 for 循环:


class Abort(Exception):
    pass

def con(x):
    if x==3:
        raise Abort()

def con2(x):
    if x == 4:
        raise Abort()
for i in range(0,10):
    try:
        con(i)
        con2(i)
    except Abort:
        continue
    print(i)
    

continue必须搭配for一起使用,可以尝试换一种实现思路
如:

def con(x):
    return True if x == 3 else False

def con2(x):
    return True if x == 4 else False

for i in range(0,10):
    lst = [
        con(i),
        con2(i)
    ]
    
    if any(lst):
        continue

    print(i)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题