每天至少打卡一道python面試題。以盡量多的方式解鎖題目,如果有遺漏的方法,歡迎在評論區(qū)補(bǔ)充。希望大家一起提高!
首先我們先來看下面一段代碼
VARIABLE = 1
def modify_global():
VARIABLE = 2
print(VARIABLE)
if __name__ == '__main__':
modify_global()
print(VARIABLE)
你是否會(huì)認(rèn)為兩次的輸出結(jié)果都為2,如果是這樣的話,你可能對python的變量作用域(scope)還沒有理解透徹。所謂作用域,就是變量的有效范圍,變量在哪個(gè)范圍可以使用。變量的作用域由變量的定義位置決定。
本題主要考察的是局部變量(Local Variable)和全局變量(Global Variable)的知識(shí)。
局部變量是在函數(shù)內(nèi)部定義的變量,作用域僅限于函數(shù)內(nèi)部,出了函數(shù)就不能使用了。
全局變量是在所有函數(shù)外部定義的變量,全局變量的作用域是整個(gè)程序
如果需要在函數(shù)內(nèi),對全局變量進(jìn)行修改,需要使用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)