Supply condition in function call

Terry Reedy tjreedy at udel.edu
Wed Mar 25 14:50:19 EDT 2015


On 3/25/2015 1:29 PM, Manuel Graune wrote:
> Hi,
>
> I'm looking for a way to supply a condition to an if-statement inside a
> function body when calling the function. I can sort of get what I want
> with using eval (see code below) but I would like to achieve this in a
> safer way. If there is a solution which is safer while being
> less flexible, that would be fine. Also, supplying the condition as a
> string is not necessary. What I want to do is basically like this:
>
> def test1(a, b, condition="True"):
>      for i,j in zip(a,b):
>          c=i+j
>          if eval(condition):
>             print("Foo")

The standard solution to the above is to have a boolean parameter, such 
as print_wanted=False.

> test1([0,1,2,3],[1,2,3,4],"i+j >4")
> print("Bar")

For this, follow Ian's suggestion of passing a predicate function.

-- 
Terry Jan Reedy




More information about the Python-list mailing list