每天至少打卡一道python面试题。以尽量多的方式解锁题目,如果有遗漏的方法,欢迎在评论区补充。希望大家一起提高!
首先我们先来看下面一段代码
VARIABLE = 1
def modify_global():
VARIABLE = 2
print(VARIABLE)
if __name__ == '__main__':
modify_global()
print(VARIABLE)
你是否会认为两次的输出结果都为2,如果是这样的话,你可能对python的变量作用域(scope)还没有理解透彻。所谓作用域,就是变量的有效范围,变量在哪个范围可以使用。变量的作用域由变量的定义位置决定。
本题主要考察的是局部变量(Local Variable)和全局变量(Global Variable)的知识。
局部变量是在函数内部定义的变量,作用域仅限于函数内部,出了函数就不能使用了。
全局变量是在所有函数外部定义的变量,全局变量的作用域是整个程序
如果需要在函数内,对全局变量进行修改,需要使用global
VARIABLE = 1
def modify():
VARIABLE = 2
print(VARIABLE)
def modify_global():
global VARIABLE
VARIABLE = 3
print(VARIABLE)
if __name__ == '__main__':
modify()
modify_global()
print(VARIABLE)