You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
862 B
32 lines
862 B
15 years ago
|
#!/usr/bin/ipython -pylab
|
||
|
#
|
||
|
# $Id: sugar.py,v 1.1 2010-01-22 18:46:50 wirawan Exp $
|
||
|
#
|
||
|
# Created: 20100121
|
||
|
# Wirawan Purwanto
|
||
|
#
|
||
|
# Syntactic sugar for python programming. May not be efficient, but many
|
||
|
# of these tools are nice for quick-and-dirty programming.
|
||
|
# Beware of their caveats!
|
||
|
#
|
||
|
#
|
||
|
|
||
|
def ifelse(cond, trueval, *args):
|
||
|
"""An alternative to python's own ternary operator, but with multiple
|
||
|
conditions to test (like chained if-else-if-else... which is found in
|
||
|
e.g. m4 language).
|
||
|
This is of course only a syntactic sugar with its inefficiency and
|
||
|
dangers (all expressions are evaluated before choosing which one is to
|
||
|
select). So, beware!"""
|
||
|
if cond:
|
||
|
return trueval
|
||
|
else:
|
||
|
i = 0
|
||
|
while i+1 < len(args):
|
||
|
if args[i]: return args[i+1]
|
||
|
i += 2
|
||
|
|
||
|
if i < len(args): return args[i]
|
||
|
|
||
|
return None # Fallback solution: "None"
|