python中的全局变量

def powerof(x,p):
    power = p   # Another dumb mistake
    y = x ** power
    return y
    
power = 3
result = powerof(10,2)
print result

首先,在函数内部使用全局变量本来就是坏的编程习惯。
其次,试图在函数内部改变全局变量的值也不可能。此时函数内部会再创建一个叫做power的局部变量,并且在执行y = x ** power的时候按照先局部变量,再全局变量的顺序找power,最后求出来的结果是10 ** 2 = 100,但是函数执行完毕后,临时创建的局部变量就销毁了,全局变量power仍然等于3。

真的想在函数里面改,加上一个关键字global

def powerof(x,p):
    global power = p   # 尽量别用,不是好的编程习惯
    y = x ** power
    return y

你可能感兴趣的:(python中的全局变量)