許多小伙伴們在學習 python 的函數(shù)的時候會遇到這兩個問題,那就是變量的作用域與全局變量的使用。那么什么是全局變量呢?python 怎么定義全局變量?通過本篇文章小編講給你聽。
首先得知道,什么是全局變量,什么是局部變量。全局變量,是指所有函數(shù)都能調用的變量,一般都在代碼塊的最外層。局部變量則相反,局部變量有在當前函數(shù)內能夠進行調用,跳出函數(shù)后局部變量會立即被銷毀,無法調用。
num = 1 # 這是一個全局變量 為了美觀我把他放在第一行
def update(): # 示例函數(shù)
y = 1 # 這是一個局部變量,只有這個函數(shù)內可以使用
print(num) # 全局變量在函數(shù)內部是可以引用的
y = num+1 # 全局變量可以參與運算
return y # 函數(shù)結束,y會被銷毀,外部無法引用y
update()
#print(y) # 因為y是函數(shù)內的局部變量,函數(shù)結束后就會被銷毀,所以引用不到y(tǒng)
print(num) # 全局變量可以引用
如上所示,只要在最外層定義變量,這個變量就能全局引用。那么接下來就會出現(xiàn)一個問題:如果我要在函數(shù)內修改這個全局變量的值,可行嗎?
答案是可行的,不過要掌握一定的方法。
int a =1;
void test(){
a = a+100;
}
int main() {
printf("Hello, World!\n %d",a);
a =a+1;
printf("\n%d",a);
test();
printf("\n%d",a);
return 0;
}
如上代碼所示,C語言的全局變量的值可以直接修改,那么 python 能不能像這樣直接修改呢?沒錯,不可以。如果像C語言那樣直接修改,代碼會報錯(未解析的引用)。這個時候,?global
? 關鍵字的作用就出現(xiàn)了。如果要在函數(shù)內修改全局變量的值,只要在函數(shù)內部用 ?global
? 聲明這個全局變量,就能在函數(shù)內修改這全局變量的值。
num = 1 # 這是一個全局變量 為了美觀我把他放在第一行
def update(): # 示例函數(shù)
global num # 使用global聲明num,在函數(shù)中就可以修改全局變量的值
num += 1 # 全局變量可以參與運算
return 0
print(num) # 調用函數(shù)前查看全局變量
update() # 調用函數(shù),修改全局變量
print(num) # 調用函數(shù)后查看全局變量
小結
以上就是python使用global修改全局變量的全部內容,想要學習更多更全面的python知識,可以前往python進階課程進行學習。