f()で定義したローカル変数bの値を、ネスト関数g()から変更するにはどうすれば良いのでしょうか。
global a, bではうまくいかず、さりとて代案も思いつきませんでした。

a = "global!!"

def f():
    global a
    print(a)
    b = "local 1"

    def g():
        global a
        print(a)
        print(b) # local variable 'b' referenced before assignment
        b = "local 2"
        print(b)

    g()
    print(a)
    print(b)