Python paradigms

Andrew Dalke dalke at
Sun Apr 16 06:17:22 EDT 2000

Aahz Maruch wrote:
>def expression_if( test, true, false ):
>  if test: return true
>  else: return false
>x = expression_if( a is not None,
>   a[i].weeble, 0) + expression_if( b is not None, b[i].wombat, 0)

Suppose a is None.  The a[i].weeble will give an exception.

You can imagine:

def expression_if(test, true_string, false_string):
  # some nasty code to get the locals of the calling function
  if test:
    return eval(true_string with the given locals)
    return eval(false_string with the given locals

x = expression_if(a is not None, "a[i].weeble", "0") + ...

but that's just too ugly.

                    dalke at

More information about the Python-list mailing list