2015-04-14 1 views
0

Я хотел бы определить функцию, которая возвращает что-то, если условие равно True. Но я хочу передать условие как аргумент функции!Зацикливание на условие, определенное как аргумент

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

Например, с этой функцией, например, как можно передать аргумент, чтобы иметь условие = (I% 2 == 0)? (Я хочу иметь возможность использовать внутренние функциональные переменные в состоянии)

Причина, по которой я хочу достичь этого, - написать общий класс, передающий информацию другой функции в зависимости от различных условий.

+2

Используйте лямбда или функцию в качестве аргумента. –

ответ

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

Смежные вопросы