parent
c62735c225
commit
5af79a8000
1 changed files with 31 additions and 0 deletions
@ -0,0 +1,31 @@ |
||||
#!/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" |
Loading…
Reference in new issue