日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python局部静态变量_全局变量、局部变量和静态变量

發布時間:2023/12/20 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python局部静态变量_全局变量、局部变量和静态变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全局變量和局部變量在寫代碼時需要區分清楚,不然會出大問題。不同語言定義不同范圍的變量的寫法有很大的區別。

那么靜態變量是在什么場景下用到呢?我們來假設這樣一個場景:在函數內部定義的變量,當程序執行到它的定義處時,編譯器為它在棧上分配空間,函數在棧上分配的空間在此函數執行結束時會釋放掉,這樣就產生了一個問題: 如果想將函數中此變量的值保存至下一次調用時,如何實現? 最容易想到的方法是定義為全局的變量,但定義一個全局變量有許多缺點,最明顯的缺點是破壞了此變量的訪問范圍(使得在此函數中定義的變量,不僅僅只受此函數控制)。static關鍵字則可以很好的解決這個問題。另外,在C++和java中,需要一個數據對象為整個類而非某個對象服務,同時又力求不破壞類的封裝性,即要求此成員隱藏在類的內部,對外不可見時,可將其定義為靜態數據。

在c中,靜態全局變量和全局變量的區別在于,全局變量其他文件可以訪問,但是靜態全局變量只能被當前文件中的函數訪問。

c/c++的寫法

int globalVar = 1; //全局變量static int staticVar = 2; //靜態全局變量

void VarDemo() {

int localVar = 3; //局部變量 static int staticVar2 = 4; //仍然為局部變量 printf("globalVar=%d\n" + globalVar);

printf("staticVar=%d\n" + staticVar);

printf("localVar=%d\n" + localVar);

}

java的寫法

class HelloWorld{

public int globalVar = 1;

public static int staticVar = 2;

public static void main(String[] args) {

int localVar = 3;

System.out.println("localVar="+String.valueOf(localVar));

System.out.println("staticVar="+String.valueOf(staticVar));

}

}

go的寫法

var globalVar int=0 //只能被本包內函數訪問的全局變量var GlobalVar int = 1 //可以在任何包內被訪問的全局變量

func varDemo() {

localVar := 2 //局部變量fmt.Println("globalVar=", globalVar)

fmt.Println("GlobalVar=", GlobalVar)

fmt.Println("localVar=", localVar)

}

func main() {

varDemo()

}

python的寫法

global_var = 1 # 定義全局變量

def var_demo():

local_var = 2 # 定義局部變量

print("global_var=", global_var)

print("local_var=", local_var)

if __name__ == "__main__":

var_demo()

總結對比:

1. 一般情況下全局變量定義函數外,局部變量定義函數內;全局變量作用范圍是全局,局部變量作用范圍在函數內;

2. 靜態變量定義在函數外,則為靜態全局變量,作用范圍為當前文件;定義在函數內,則為局部靜態變量,作用范圍同局部變量;

3. 如果在全局范圍要經常用到某個值,則設置為靜態變量,否則定義為普通全局變量即可;

4. c、c++和java可以定義靜態變量,go和python不能定義靜態變量;

5. go的全局變量有兩種,一種是可以在包內被訪問的,一種是在其他包內也可以被訪問的,區別在于后一種全局變量的首字母為答謝,前一種為小寫;

總結

以上是生活随笔為你收集整理的python局部静态变量_全局变量、局部变量和静态变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。