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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容