国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python全局變量和局部變量(超詳細(xì),純干貨,保姆級教學(xué))

這篇具有很好參考價(jià)值的文章主要介紹了Python全局變量和局部變量(超詳細(xì),純干貨,保姆級教學(xué))。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

全局變量定義:

????????????????????????在函數(shù)外部定義的變量。所有函數(shù)內(nèi)部都可以使用這個(gè)變量。

局部變量定義:

????????????????????????在函數(shù)內(nèi)部定義的變量。這個(gè)變量只能在定義這個(gè)變量的函數(shù)內(nèi)部使用。

第一種:global定義全局變量在自定義函數(shù)內(nèi)部

定義看起來一愣一愣的,沒關(guān)系我也是。我將會用實(shí)例的方式為你解釋。我們也知道在Python中有一個(gè)global關(guān)鍵字用來聲明一個(gè)全局變量。那這玩意兒到底什么用。來看看

def first():
    global key
    key="first()的key"
    print("進(jìn)入first函數(shù),給key賦新值,此時(shí)print(key)得到***"+key+"***\n")
def second():
    print("進(jìn)入second函數(shù),但是沒有給key賦新值,此時(shí)print(key)得到***"+key+"***\n")
def third():
    key="third()的key"
    print("進(jìn)入third函數(shù),給key賦新值,此時(shí)print(key)得到***"+key+"***\n")

first()
second()
third()
print(key)

******最后的到運(yùn)行結(jié)果如下******

Python全局變量和局部變量(超詳細(xì),純干貨,保姆級教學(xué))

結(jié)論:上面例子說明了 global 定義 全局變量,就是用在? 自定義函數(shù)? 內(nèi)部,用于告訴python這是一個(gè)? 全局變量? .作用跟在? 全局作用域? 里寫下一個(gè)? 全局變量a? 是一樣一樣的效果

(注意,我可沒在全局定義key,但是可以打印出來,這說明了什么???嚴(yán)格證明了結(jié)論嘛)

? ? ? ? ? ? ? ? ?**********************分割線***************************

第二種:全局定義全局變量,并給其賦值。

(注:在全局內(nèi)寫“key="值"相當(dāng)于在全局內(nèi)寫“global key

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?key="值"”)

key="全局內(nèi)定義,并賦值的全局變量key"

def first():
    key="first()局部新定義的“全局key“"
    print("進(jìn)入first函數(shù),key的值為***"+key+"***\n")
def second():
    print("進(jìn)入second函數(shù),在second函數(shù)內(nèi)部,不賦給key新值,引用first()函數(shù)后的key為***"+key+"***\n")


print("沒有引用first()函數(shù)時(shí)的key為***"+key+"***\n")#為了先print出key的全局內(nèi)定義的 全局變量值

first()#first()函數(shù)內(nèi)部對全局內(nèi)定義的 全局變量key 進(jìn)行了賦值。實(shí)質(zhì)上是在first()內(nèi)部定義了一個(gè)局部變量

second()#驗(yàn)證這個(gè) first()內(nèi)部定義的局部變量會不會影響到second()中的key。(就像第一種global key那樣。結(jié)論當(dāng)然是否定的。但我們這里驗(yàn)證一下,消除一下讀者的疑問)

print("引用first()函數(shù)后的key為***"+key+"***\n")#驗(yàn)證在 first()定義了一個(gè)局部變量之后,會不會影響到全局內(nèi)的全局變量key。(答案當(dāng)然也是否定的,這里這一步也是為了消除讀者的疑問)

********運(yùn)行結(jié)果如下********

Python全局變量和局部變量(超詳細(xì),純干貨,保姆級教學(xué))

?可見,以上例子中。first()內(nèi)定義了一個(gè)局部變量,然后出了這個(gè)first()函數(shù)以后,這個(gè)變量便消失,不可再用。同時(shí)也體現(xiàn)了“局部變量>全局變量”的優(yōu)先級關(guān)系。

結(jié)論:在全局 定義 全局變量 key 后,自定義函數(shù) 內(nèi)部 再對這個(gè)? key 進(jìn)行定義 的時(shí)候,就是定義了 key局部變量,出了這個(gè) 自定義函數(shù),便不可再用。下一個(gè)自定義函數(shù) 只能用 全局變量key 了。

? ? ? ? ? ? ? ? ?**********************分割線***************************

第三種:前兩種的混用

def first():
    key="first()局部新定義的\"局部變量\"key"
    print("進(jìn)入first函數(shù),key的值為***"+key+"***\n")
def second():
    print("進(jìn)入second函數(shù),在second函數(shù)內(nèi)部,不賦給key新值,引用first()函數(shù)后的key為***"+key+"***\n")
def third():
    global key
    key="third()定義的全局通用(即全局變量)global key"
    print("進(jìn)入third函數(shù),在third函數(shù)內(nèi)部,賦給key新值,且為global,引用third()后的key為***"+key+"***\n")


key="全局內(nèi)定義,并賦值的全局變量key"
print("沒有引用first()函數(shù)時(shí)的key為***"+key+"***\n")#與第二種的這個(gè)位置的作用一樣
first()#與第二種的這個(gè)位置的作用一樣
second()#與第二種的這個(gè)位置的作用一樣

third()#由于我們給third()內(nèi)部定義了一個(gè)global key,探測一下等下再調(diào)用third()的時(shí)候,我們的全局key會不會改變?yōu)閠hird()中的key值。即 第一種 的結(jié)論。(當(dāng)然哈,肯定是會的,證明見下一步)


print("引用third()函數(shù)后的,全局內(nèi)的key為***"+key+"***\n")#探測一下global key會不會影響 全局內(nèi)的key(答案是會影響,因?yàn)槲覀兊谝环N說過。在局部變量里面global key相當(dāng)于在全局作用域里直接寫一個(gè)key一樣的效果。)

********運(yùn)行結(jié)果如下********

Python全局變量和局部變量(超詳細(xì),純干貨,保姆級教學(xué))

OK,現(xiàn)在嚴(yán)格證明了結(jié)論一和結(jié)論二.

第四種.深入的了解一下.(必看!!!!!!!!!)

c語言大家都學(xué)過吧,沒學(xué)過也沒關(guān)系.你回想一下,我們寫的第一個(gè)hello world程序是不是下面這樣

#include<stdio.h>
int main()
{
    printf("hello world");
}

注意到?jīng)]有,我們寫的第一個(gè)c語言程序就是在main()函數(shù)內(nèi)部寫的,根據(jù)定義,在函數(shù)內(nèi)部寫的就是局部變量,當(dāng)然main()函數(shù)也是函數(shù).

然而我們在python中寫的第一個(gè)hello world是

print("hello world")

這個(gè)python的hello world是在哪里寫的?沒錯(cuò),在全局作用域里面.而不是在函數(shù)內(nèi)部寫的.

根據(jù)上面的我說過的

局部變量與全局變量的理解方法


a=1

def good():         #定義一個(gè)good函數(shù),自定義函數(shù)內(nèi)部的是局部變量
    a=2             #局部變量a=2
    print(a)        #print結(jié)果是2
good()              #調(diào)用good()函數(shù)
print(a)            #print結(jié)果是1

解釋:

? ??在全局作用域中定義了一個(gè)全局變量a并賦值為1

? ? 后來定義了一個(gè)good()函數(shù),作用是給局部變量賦值為2,并print這個(gè)a

? ? 然后調(diào)用這個(gè)good()函數(shù):

? ? ? ? ? ? ? 理解一下.這個(gè)名字為a的變量在good()函數(shù)中,變量a被自定義函數(shù)內(nèi)部的a=2給賦了一個(gè)新的值2,所以a的值由1變成了2.然后執(zhí)行了print()功能.最后這個(gè)函數(shù)是不是就調(diào)用完成了,然后python就把這個(gè)函數(shù)的局部變量(也就是a=2)的內(nèi)存釋放(其實(shí)也會將參數(shù)釋放掉,但是我這個(gè)函數(shù)沒有寫參數(shù))掉了...所以全局變量a的值又恢復(fù)為了1.(最好這樣理解,幫你記得更清晰一點(diǎn),你就按我這樣理解)

其實(shí)別總是死記硬背什么"在自定義函數(shù)內(nèi)部優(yōu)先級:局部變量>全局變量"這些全是二級結(jié)論,你要懂得本質(zhì).為什么在自定義函數(shù)內(nèi)部有這樣的優(yōu)先級?其實(shí)不就是因?yàn)槌绦蜻\(yùn)行到自定義函數(shù)內(nèi)部了,又遇到了同名的變量,然后給這個(gè)變量又賦了一個(gè)新值嘛..這和你在全局作用域內(nèi)見到

a=1
a=2

不是一樣的嘛...全局變量a先被賦值為了1,之后程序運(yùn)行到了第二行,遇到了同名的變量a,并給他賦了一個(gè)新值為2.這個(gè)邏輯其實(shí)和我上面紫色標(biāo)記的內(nèi)容一樣嘛.編程內(nèi)部邏輯不難,重要的是要理解..然后第二個(gè)二級結(jié)論就是.局部變量不可以改變?nèi)肿兞?,為什么?我接著上面紫色標(biāo)記的內(nèi)容繼續(xù)說,其實(shí)不就是因?yàn)?這個(gè)自定義函數(shù)調(diào)用完之后,他的局部變量被釋放掉了嘛.所以,局部變量影響不了全局變量.把上面藍(lán)色標(biāo)記的內(nèi)容好好看看,你品,你細(xì)品.全局變量,局部變量,聽著可高級是吧,其實(shí)就是名字聽著nb一點(diǎn),但本質(zhì)都是一群小趴菜,微不足道,輕輕松松好吧...

為什么要有g(shù)lobal?

你想想啊,如果函數(shù)內(nèi)部的局部變量不能改變?nèi)肿兞靠隙ㄊ遣恍械陌?因?yàn)榭倳星闆r需要的..

so,這時(shí)候global就來了.他的作用是什么呢?是為了告訴python解釋器說,我在自定義函數(shù)內(nèi)部global a,相當(dāng)于在全局作用域里面寫一個(gè)全局變量a...因此呢,不就可以實(shí)現(xiàn)在自定義函數(shù)內(nèi)部也可以改變?nèi)肿兞康淖饔美矄?

兄弟們,好好看看我新更新的內(nèi)容,你一定受益匪淺!!!!!!!!!!

(如有不足或錯(cuò)誤,敬請指正)文章來源地址http://www.zghlxwxcb.cn/news/detail-453482.html

到了這里,關(guān)于Python全局變量和局部變量(超詳細(xì),純干貨,保姆級教學(xué))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python學(xué)習(xí)筆記(四):函數(shù)的定義、函數(shù)的返回值、None類型、函數(shù)說明文檔、函數(shù)的嵌套調(diào)用、局部變量、全局變量、global關(guān)鍵字

    Python學(xué)習(xí)筆記(四):函數(shù)的定義、函數(shù)的返回值、None類型、函數(shù)說明文檔、函數(shù)的嵌套調(diào)用、局部變量、全局變量、global關(guān)鍵字

    目錄 一、函數(shù)介紹 1. 函數(shù)是: 2. 使用函數(shù)的好處是: 二、函數(shù)的定義: 三、函數(shù)的參數(shù) 1.傳入?yún)?shù)的功能是: 2.函數(shù)的傳入?yún)?shù) - 傳參定義 3.注意事項(xiàng): 4.練習(xí):測量體溫 四、函數(shù)的返回值 1.函數(shù)返回值的定義 2.None類型 五、函數(shù)說明文檔 六、函數(shù)的嵌套調(diào)用 七、變量的

    2024年02月05日
    瀏覽(21)
  • Golang 局部變量、全局變量 聲明

    Golang 局部變量、全局變量 聲明

    四種聲明方式 + 多變量聲明: 全局變量的聲明和局部變量的聲明方式一、二、三 相同; 但是不能使用局部變量聲明方式四 (:=) 來聲明全局變量。

    2024年02月13日
    瀏覽(24)
  • Java成員變量(全局變量)和局部變量

    在Java中變量類型有 成員變量 、 局部變量 和 靜態(tài)變量(類變量、static變量) ,本篇文章主要介紹成員變量(全局變量)和局部變量的區(qū)別。 根據(jù)變量的作用范圍,將程序中的變量分為成員變量(全局變量)和局部變量。 一、成員變量(全局變量) 成員變量(全局變量):

    2024年02月04日
    瀏覽(35)
  • Python進(jìn)階(一)名字空間 | 超詳細(xì)名字空間解析 內(nèi)置 全局 局部 調(diào)試查看

    在Python中,名字空間(Namespace)是一個(gè)用于存儲變量名稱和它們對應(yīng)的對象值的容器。名字空間可以看作是一個(gè)映射,將變量名映射到相應(yīng)的對象值。比如申明一個(gè)變量a=1,那么在名字空間字典中就會增加一個(gè)映射 ‘a(chǎn)’ : ‘1’ Python中有幾種不同類型的名字空間,主要包括以

    2024年01月20日
    瀏覽(23)
  • c語言全局變量和局部變量問題匯總

    ?作者簡介:嵌入式領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客專家 ?個(gè)人主頁:咸魚弟 ??系列專欄:單片機(jī)設(shè)計(jì)專欄? 1、static的作用是什么?? 定義靜態(tài)變量? 2、static有什么用途?(請至少說明兩種)? 1).限制變量的作用域(在程序的整個(gè)運(yùn)行期間都不釋放)? 2).設(shè)置變量的存儲域(存

    2024年02月06日
    瀏覽(28)
  • C語言——局部和全局變量

    局部變量 定義在函數(shù)內(nèi)部的變量稱為局部變量(Local Variable) 局部變量的作用域(作用范圍)僅限于函數(shù)內(nèi)部, 離開該函數(shù)后是無效的 離開該函數(shù)后,局部變量自動釋放 示例代碼: 全局變量 在所有函數(shù)外部定義的變量稱為全局變量(Global Variable),它的作用域默認(rèn)是整個(gè)程

    2024年02月10日
    瀏覽(23)
  • 變量的存儲類型(全局,局部,靜態(tài),動態(tài))

    存儲類型 是指變在內(nèi)存中的存儲方式,有靜態(tài)存儲和動態(tài)存儲方式。 1.靜態(tài)存儲方式 靜態(tài)存儲方式的變量存儲在內(nèi)存的靜態(tài)區(qū),在程序編譯時(shí)就已經(jīng)分配好了內(nèi)存空間。在整個(gè)程序運(yùn)行時(shí),該變量一直占有固有的內(nèi)存空間,程序結(jié)束后才釋放該部分內(nèi)存空間。其中靜態(tài)局部

    2024年02月03日
    瀏覽(20)
  • 【C語言趣味教程】(6) 作用域:局部變量 | 全局變量 | 局部變量優(yōu)先原則 | 利用大括號限制作用域 | 變量的生命周期

    【C語言趣味教程】(6) 作用域:局部變量 | 全局變量 | 局部變量優(yōu)先原則 | 利用大括號限制作用域 | 變量的生命周期

    ??? ?? 【C語言趣味教程】專欄介紹?? 猛戳了解?。?! 0x00 引入:什么是作用域? 變量和常量在程序中都是有作用范圍的,這個(gè)范圍我們稱之為變量的? 作用域 (scope) 。 作用域也稱為 \\\"定義域\\\",是程序中 定義的變量所存在的區(qū)域,出了該區(qū)域變量就不能被訪問。 變量的作

    2024年02月14日
    瀏覽(30)
  • Java中的全局變量和局部變量(看這篇就夠了)

    在Java中,全局變量和局部變量是兩種不同作用域的變量。 全局變量(成員變量) : 在類中定義的變量稱為成員變量,也叫全局變量。它們的作用域是整個(gè)類,在類的任何地方都可以被訪問。 如果沒有顯式地初始化,它們會有默認(rèn)值。 全局變量可以是基本數(shù)據(jù)類型(如int、

    2024年02月04日
    瀏覽(31)
  • Labview局部變量、全局變量、引用、屬性節(jié)點(diǎn)、調(diào)用節(jié)點(diǎn)用法理解及精講

    Labview局部變量、全局變量、引用、屬性節(jié)點(diǎn)、調(diào)用節(jié)點(diǎn)用法理解及精講

    寫本章前想起題主初學(xué)Labview時(shí)面對一個(gè)位移臺程序,傻傻搞不清局部變量和屬性節(jié)點(diǎn)值有什么區(qū)別,概念很模糊。所以更新這篇文章讓大家更具象和深刻的去理解這幾個(gè)概念,看完記得點(diǎn)贊加關(guān)注喔~ 本文程序源代碼附在后面,大家可以自行下載學(xué)習(xí)。 本文的結(jié)構(gòu)還是首先教

    2024年01月20日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包