python函數(shù)改變全局 py函數(shù)內部怎樣修改全局變量

python中有關全局變量的問題?

print函數(shù)輸出兩段內容,第一段內容為字符串復制2次的結果,第二段內容為append函數(shù)追加獲得

創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構建的平臺為眾多戶提供成都服務器托管 四川大帶寬租用 成都機柜租用 成都服務器租用。

Python中的全局變量

在Python可以在函數(shù)中直接使用定義的全局變量,但是 如果需要修改這個全局變量 ,那么就要在函數(shù)前面 global a 表明在函數(shù)中的 a 是 全局變量 a 而不是重新定義的局部變量 a 。

python函數(shù)調用的參數(shù)傳遞

python的函數(shù)參數(shù)傳遞是"引用傳遞(地址傳遞)"。

python中賦值語句的過程(x = 1):先申請一段內存分配給一個整型對象來存儲數(shù)據(jù)1,然后讓變量x去指向這個對象,實際上就是指向這段內存(這里有點和C語言中的指針類似)。

在Python中,會為每個層次生成一個符號表,里層能調用外層中的變量,而外層不能調用里層中的變量,并且當外層和里層有同名變量時,外層變量會被里層變量屏蔽掉。函數(shù)? 調用 ?會為函數(shù)局部變量生成一個新的符號表。

局部變量:作用于該函數(shù)內部,一旦函數(shù)執(zhí)行完成,該變量就被回收。

全局變量:它是在函數(shù)外部定義的,作用域是整個文件。全局變量可以直接在函數(shù)里面應用,但是如果要在函數(shù)內部改變全局變量,必須使用global關鍵字進行聲明。

注意 :默認值在函數(shù)? 定義 ?作用域被解析

在定義函數(shù)時,就已經執(zhí)行力它的局部變量

python中不可變類型是共享內存地址的:把相同的兩個不可變類型數(shù)據(jù)賦給兩個不同變量a,b,a,b在內存中的地址是一樣的。

python中變量的引用、可變和不可變類型、局部變量和全局變量

變量的引用

變量和數(shù)據(jù)都是保存在內存中的

變量和數(shù)據(jù)是分開存儲的

數(shù)據(jù)保存在內存中某個位置,通過地址來標記

變量保存的是數(shù)據(jù)的地址,通過地址可以找到數(shù)據(jù)在內存空間的位置

把變量保存數(shù)據(jù)地址的過程稱為引用

變量的重新賦值修改的是變量中引用數(shù)據(jù)的內存地址

變量之間的賦值實際是引用的傳遞

函數(shù)參數(shù)的傳遞,本質也是引用的傳遞

函數(shù)的返回值本身也是引用的傳遞

可變和不可變類型

不可變類型,內存中的數(shù)據(jù)不允許被修改:數(shù)字類型(int,bool,float,complex,long(2,x)、字符串、元組(tuple)

可變類型,內存中的數(shù)據(jù)可以被修改:列表list、字典dict

無論是可變還是不可變數(shù)據(jù)類型,通過賦值語句,都會改變變量的引用

Hash函數(shù)只能接收不可變數(shù)據(jù)類型,字典的鍵也只能是不可變數(shù)據(jù)類型,字典的value值可以是任意數(shù)據(jù)類型

局部變量

1.在函數(shù)內部定義的變量就是局部變量(作用范圍只能是當前函數(shù)內部)

2.在函數(shù)外部無法直接訪問局部變量

3.不同的函數(shù)中可以定義同名的局部變量

4.局部變量的生命周期:從定義變量時開始,到函數(shù)運行結束

全局變量

1.在所有函數(shù)外邊定義的變量就是全局變量

2.讓所有函數(shù)都能訪問到,可以作為函數(shù)通信的橋梁

3.一般情況下,為了和普通變量的區(qū)別,需要加上g_或gl_前綴

4.全局變量一般放在所有函數(shù)的最上面

5.在函數(shù)內部修改全局變量,必須要加上global關鍵字,如果不加global只是定義了一個同名的局部變量

函數(shù)的多個返回值

網頁名稱:python函數(shù)改變全局 py函數(shù)內部怎樣修改全局變量
網站鏈接:http://muchs.cn/article10/dojhido.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網站靜態(tài)網站、定制網站品牌網站制作、網站收錄、響應式網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網頁設計公司