#By Robin Wellner (gvx) #I hereby waive copyright and related or neighboring rights to this work #See the Creative Commons Zero Waiver at def switch(expression, cases, default=None): try: ret = cases[expression] except KeyError: ret = default if callable(ret): ret = ret() return ret