python - 求一個在def中可以實現(xiàn)調(diào)用本def滿足特定條件continue效果的方法(標(biāo)題說不太清楚,請見題內(nèi)描述)
問題描述
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內(nèi)的條件,則外部調(diào)用的for循環(huán)做continue。例如,在例子中,i的值若為3或者4,則continue。因為for中調(diào)用的def方法會有很多個,而且實際場景要比例子復(fù)雜很多,所以感覺一個一個判斷返回值并不是很簡潔。想請問大家有沒有什么方法,實現(xiàn)小弟的這個述求,非常感謝大家~
問題解答
回答1:可以通過拋個特定異常的方式來影響 for 循環(huán):
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一起使用,可以嘗試換一種實現(xiàn)思路如:
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)
