Katriel

101
reputation
1
2

SOreadytohelp, apparently :)

class Oops(object):
    def __init__(self):
        Oops.__call__ = self

x = Oops()
x()

> Z = lambda f: (lambda x: f(lambda *args: x(x)(*args)))(lambda x: f(lambda *args: x(x)(*args)))
> fact = Z(lambda f: lambda x: 1 if x == 0 else x * f(x-1))
> fact(5)
... 120

> 0 < 0 == 0
False

def foo():
    return
    yield

raise TypeError() from ValueError()

def spam(*, ham):
    pass

Move code from try to else if you don't want to catch any errors that it produces.

try:
    do_not_do_this_at_home()
except ToldYouSo:
    die()
else:
    whaddyaknow()
finally:
    cleanup()

Yowza!

> class attrdict(dict):
def __init__(self, *args, **kwargs):
  dict.__init__(self, *args, **kwargs)
  self.__dict__ = self

@functools.lru_cache(maxsize=None)
def fib(n):
    if n < 2: return n
    return fib(n-1) + fib(n-2)