函数内部定义的全局关键字不会更新我的变量,但为什么呢?
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)
为什么 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)