2015-04-14 68 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