Well, this is the classic example of reinventing Lisp. But why do it incrementally and in this ridiculously inconvenient way? For those unaware of the history: https://gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts this is an informal explanation of the mechanism.
Better yet, why not just use Lisp instead? You'd save yourself so much busy work and have a much nicer tool... -- https://mail.python.org/mailman3//lists/python-list.python.org
