python - 求一個在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方法會有很多個,而且實際場景要比例子復雜很多,所以感覺一個一個判斷返回值并不是很簡潔。想請問大家有沒有什么方法,實現小弟的這個述求,非常感謝大家~
問題解答
回答1:可以通過拋個特定異常的方式來影響 for 循環:
class Abort(Exception): passdef 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) 回答2:
continue必須搭配for一起使用,可以嘗試換一種實現思路如:
def con(x): return True if x == 3 else Falsedef con2(x): return True if x == 4 else Falsefor i in range(0,10): lst = [con(i),con2(i) ]if any(lst):continue print(i)
