Return in Try with Finally


    def foo():
        try:
            return 1
        finally:
            return 2
    k = foo()
    print(k)  # 1
        

try, except, else, finally


    def divide(x, y):
        try:
            result = x / y
        except ZeroDivisionError:
            print("division by zero!")
        else:
            print("result is", result)
        finally:
            print("executing finally clause")

    divide(2, 1)            # Output: result is 2.0 (executing finally clause)
    divide(2, 0)            # Output: division by zero! (executing finally clause)
    divide("2", "1")        # Output: executing finally clause (Then a TypeError is raised)