函数内部定义的全局关键字不会更新我的变量,但为什么呢?

global keyword defined inside of a function is not updating my variable, but why?

为什么 func3 的输出仍然是 'Hello' 而不是 'New Message'?由于 func2 被告知将全局变量 'update' 的值更改为传递给 func1 的参数?我很困惑。

update = 'Hello'

def func1(message):
    func2(message)

def func2(message):
    global update
    update = message
    func3()

def func3(update = update):
    print(update)
    
    
    
func1('New Message')

当您调用不带参数的 func3 时,它会使用默认值计算 func3。默认值为“Hello”。 所以你需要像这样用更新的新值调用 func3:

def func2(message):
    global update
    update = message
    func3(update)