2015-04-14 100 views
0

的條件我想定義一個函數,返回某些條件爲True的函數。但我想通過條件作爲函數的參數!循環定義爲參數

def foo(condition): 
    i=0 
    while True: 
     if condition==True: 
     print i 
     i+=1 

例如,對於這個示例函數,如何傳遞參數以使條件=(i%2 == 0)? (我希望能夠在條件下使用內部函數變量)

我想達到這個目的的原因是編寫一個泛型類,根據各種條件向其他函數發送信息。

+2

使用lambda或函數作爲參數。 –

回答

2

在python中,你可以傳遞一個函數作爲參數。以你爲例,你可以這樣做:

def foo(condition): 
    i=0 
    while i < 10: 
     if condition(i): 
     print i 
     i+=1 

def is_even(x): 
    return (x % 2) == 0 

foo(is_even) 
+0

謝謝,我認爲應該工作! – CoMartel