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