Python 为函数内的全局变量赋值

Python 为函数内的全局变量赋值,python,python-3.x,scope,Python,Python 3.x,Scope,为什么这样不行?我知道它不会改变全局变量的值,但是它不能在函数内部工作吗 S将新值签名到。。。这是旧值*2。为什么不可能呢?函数中的a位于函数范围内,如果要引用外部的,请使用global: a = 2 def alter_a(): a = a * 2 return a a = 2 def alter_a(): global a a = a * 2

为什么这样不行?我知道它不会改变全局变量的值,但是它不能在函数内部工作吗


S将新值签名到。。。这是旧值*2。为什么不可能呢?

函数中的
a
位于函数范围内,如果要引用外部的,请使用
global

a = 2
def alter_a():
    a = a * 2
    return a
a = 2
def alter_a():
    global a
    a = a * 2