真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中局部函數(shù) python局部變量的作用范圍

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

變量的引用

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),槐蔭網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:槐蔭等地區(qū)。槐蔭做網(wǎng)站價(jià)格咨詢:028-86922220

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

變量和數(shù)據(jù)是分開(kāi)存儲(chǔ)的

數(shù)據(jù)保存在內(nèi)存中某個(gè)位置,通過(guò)地址來(lái)標(biāo)記

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

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

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

變量之間的賦值實(shí)際是引用的傳遞

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

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

可變和不可變類型

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

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

無(wú)論是可變還是不可變數(shù)據(jù)類型,通過(guò)賦值語(yǔ)句,都會(huì)改變變量的引用

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

局部變量

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

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

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

4.局部變量的生命周期:從定義變量時(shí)開(kāi)始,到函數(shù)運(yùn)行結(jié)束

全局變量

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

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

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

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

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

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

python函數(shù)中局部變量與全局變量遵守規(guī)則

(1)簡(jiǎn)單數(shù)據(jù)類型變量無(wú)論是否與全局變量重名,僅在函數(shù)內(nèi)部創(chuàng)建和使用,函數(shù)退出后變量被釋放,如有全局同名變量,其值不變。

(2)簡(jiǎn)單數(shù)據(jù)類型變量在用global保留字聲明后,作為全局變量使用,函數(shù)退出后該變量保留且值被函數(shù)改變。

(3)對(duì)于組合數(shù)據(jù)類型的全局變量,如果在函數(shù)內(nèi)部沒(méi)有被真實(shí)創(chuàng)建的同名變量,則函數(shù)內(nèi)部可以直接使用并修改全局變量的值。

(4)如果函數(shù)內(nèi)部真實(shí)創(chuàng)建了組合數(shù)據(jù)類型變量,無(wú)論是否有同名全局變量,函數(shù)僅對(duì)局部變量進(jìn)行操作,函數(shù)退出后局部變量被釋放,全局變量值不變。

*《python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)》.高等教育出版社

python中使用閉包及修改外部函數(shù)的局部變量

在python中,函數(shù)可以被嵌套定義,也就是說(shuō),函數(shù)中可以定義函數(shù)。該函數(shù)還可以將其內(nèi)部定義的函數(shù)作為返回值返回。

閉包的定義:一般來(lái)說(shuō),我們可以認(rèn)為,如果一個(gè)函數(shù)可以讀取其他函數(shù)中的局部變量,那么它們就構(gòu)成了閉包。

注意 :閉包的定義不是特別清晰,但大體上的意思是這樣的。

我們知道,普通的函數(shù)是可以使用全局變量的

類似的,函數(shù)中定義的函數(shù),也是可以使用外部函數(shù)的變量的。因此,滿足了函數(shù)讀取了其他函數(shù)局部變量的這一條件,他們因此構(gòu)成了閉包。

在閉包的使用中,我們可以先給外部的函數(shù)賦予不同的局部變量,然后再調(diào)用其中內(nèi)部的函數(shù)時(shí),就可以讀取到這些不同的局部變量了。

外部變量的使用 在普通函數(shù)中,雖然可以直接使用全局變量,但是不可以直接修改全局變量。從變量的作用域來(lái)說(shuō),一旦你嘗試修改全局變量,那么就會(huì)嘗試創(chuàng)建并使用一個(gè)同名的局部變量。因此,如果你需要在普通函數(shù)中修改全局變量,需要使用global

同樣的,如果你希望通過(guò)定義在內(nèi)部的函數(shù)去修改其外部函數(shù)的變量,那么必須使用nonlocal


文章標(biāo)題:python中局部函數(shù) python局部變量的作用范圍
文章URL:http://weahome.cn/article/hioisj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部