With the latest release of the
boduch Python library, there are two new predicate classes available;
Greater and
Lesser. These predicates do exactly what the name says. The
Greater predicate will evaluate to true if the first operand is greater than the second. The
Lesser predicate will return true if the first operand is less than the operand. Here is an example of how we would use these predicates.
#Example; boduch predicates
from boduch.predicate import Greater, Lesser
if __name__=="__main__":
is_greater=Greater(2,1)
is_lesser=Lesser(1,2)
if is_greater:
print "is_greater is true."
else:
print "is_greater is false."
if is_lesser:
print "is_lesser is true."
else:
print "is_lesser is false"
Here, we have two predicate instances,
is_greater and
is_lesser. The
is_greater variable is an instance of the
Greater predicate and will evaluate to true in this case. The
is_lesser variable is an instance of the
Lesser predicate and will evaluate to true in this case.
With the latest release the library, predicate instances can also accept function objects as parameters. For example, consider the following modified example.
#Example; boduch predicates
from boduch.predicate import Greater, Lesser
number1=0
number2=0
def op1():
global number1
return number1
def op2():
global number2
return number2
def results():
global is_greater
global is_lesser
if is_greater:
print "is_greater is true."
else:
print "is_greater is false."
if is_lesser:
print "is_lesser is true."
else:
print "is_lesser is false"
if __name__=="__main__":
#Construct predicate instances using function objects as operands.
is_greater=Greater(op1,op2)
is_lesser=Lesser(op1,op2)
#Change the value of the operands.
number1=2
number2=1
#Print results.
results()
#Change the value of the operands.
number1=1
number2=2
#Print results.
results()
Here, we now have two variables,
number1 and
number2 that will act as operands. Next, we have two functions that will return these values,
op1() and
op2(). Next, the
results() function simply prints the result of evaluating the predicates. In the main program, we construct the two predicate instances, passing the
op1() and
op2() functions as operand parameters. Next, we initialize the
number1 and
number2 variables and print the result of evaluating the predicates. Finally, we change the value of
number1 and
number2 and once more print the results. You'll notice that the results will have reflected the change in
number1 and
number2.