成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

簡單了解Python變量作用域正確使用方法

瀏覽:95日期:2022-07-21 14:19:07

在寫代碼的時候,免不了要使用變量。但程序中的一個變量并不一定是在哪里都可以被使用,根據(jù)情況不同,會有不同的“有效范圍”。

看這樣一段代碼:

def func(x): print (’X in the beginning of func(x): ’, x) x = 2 print (’X in the end of func(x): ’, x)x = 50func(x)print (’X after calling func(x): ’, x)

輸出:

X in the beginning of func(x): 50X in the end of func(x): 2X after calling func(x): 50

變量 x 在函數(shù)內(nèi)部被重新賦值。但在調(diào)用了函數(shù)之后,x 的值仍然是50。為什么?

這就得說一下變量的“作用域”:

當(dāng)函數(shù)內(nèi)部定義了一個變量,無論是作為函數(shù)的形參,或是另外定義的變量,它都只在這個函數(shù)的內(nèi)部起作用。函數(shù)外即使有和它名稱相,另外注意:光理論是不夠的。這里順便送大家一套2020最新python入門到高級項目實戰(zhàn)視頻教程,可以去小編的Python交流.裙 :七衣衣九七七巴而五(數(shù)字的諧音)轉(zhuǎn)換下可以找到了,還可以跟老司機交流討教!

同的變量,也沒有什么關(guān)聯(lián)。這個函數(shù)體就是這個變量的作用域。像這樣在函數(shù)內(nèi)部定義的變量被稱為“局部變量”。

要注意的是,作用域是從變量被定義的位置開始。像這樣的寫法是有問題的:

def func(): print (y) y = 2 print (y)

報錯:

UnboundLocalError: local variable ’y’ referenced before assignment

因為在 y = 2 之前,y 并不存在,調(diào)用 y 的值就會出錯。

回到開始那個例子:

在函數(shù) func 外部,定義的變量 x,賦值為 50,作為參數(shù)傳給了函數(shù) func。而在函數(shù) func 內(nèi)部,變量 x 是形參,它的作用域是整個函數(shù)體內(nèi)部。它與外面的那個 x 沒有關(guān)系。只不過它的初始值是由外面那個 x 傳遞過來的。

所以,雖然函數(shù)體內(nèi)部的 x 被重新賦值為 2,也不會影響外面那個 x 的值。

不過有時候,我們希望能夠在函數(shù)內(nèi)部去改變一些變量的值,并且這些變量在函數(shù)外部同樣被使用到。怎么辦?

一種方法是,用 return 把改變后的變量值作為函數(shù)返回值傳遞出來,賦值給對應(yīng)的變量。比如開始的那個例子,可以在函數(shù)結(jié)尾加上

return x

然后把調(diào)用改為

x = func(x)

還有一種方法,就是使用“全局變量”。

在 Python 的函數(shù)定義中,可以給變量名前加上 global 關(guān)鍵字,這樣其作用域就不再局限在函數(shù)塊中,而是全局的作用域。

通過 global 改寫開始的例子:

def func(): global x print (’X in the beginning of func(x): ’, x) x = 2 print (’X in the end of func(x): ’, x)x = 50func()print (’X after calling func(x): ’, x)

輸出:

X in the beginning of func(x): 50X in the end of func(x): 2X after calling func(x): 2

函數(shù) func 不再提供參數(shù)調(diào)用。而是通過 global x 告訴程序:這個 x 是一個全局變量。于是函數(shù)中的 x 和外部的 x 就成為了同一個變

量。這一次,當(dāng) x 在函數(shù) func 內(nèi)部被重新賦值后,外部的 x 也隨之改變。

前面講的局部變量和全局變量是 Python 中函數(shù)作用域最基本的情況。實際上,還有一些略復(fù)雜的情況,比如:

def func(): print (’X in the beginning of func(x): ’, x) # x = 2 print (’X in the end of func(x): ’, x)x = 50func()print (’X after calling func(x): ’, x)

輸出:

X in the beginning of func(x): 50X in the end of func(x): 50X after calling func(x): 50

程序可以正常運行。雖然沒有指明 global,函數(shù)內(nèi)部還是使用到了外部定義的變量。然而一旦加上

x = 2

這句,程序就會報錯。因為這時候,x 成為一個局部變量,它的作用域從定義處開始,到函數(shù)體末尾結(jié)束。

建議在寫代碼的過程中,顯式地通過 global 來使用全局變量,避免在函數(shù)中直接使用外部變量。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲主播在线观看| 99免费精品视频| 国产激情视频一区二区三区欧美| 亚洲专区免费| 国产欧美日韩视频一区二区| 国产成人aaa| 欧美日韩一区国产| 日日夜夜精品免费视频| 国产欧美日韩一区| 亚洲色图视频免费播放| 亚洲午夜久久久久久尤物| 久久精品视频免费| 成人av小说网| 欧美成人vr18sexvr| 国产精品一区久久久久| 555夜色666亚洲国产免| 免费成人在线视频观看| 久久精品天堂| 亚洲高清视频中文字幕| 亚洲欧洲精品一区二区三区波多野1战4 | 久久久久在线| 亚洲一区二区五区| 亚洲一区二区成人| 亚洲图片欧美综合| 亚洲欧美成人综合| 亚洲国产精品久久人人爱| 亚洲欧美激情诱惑| 亚洲福利国产精品| 国产亚洲毛片在线| 亚洲成人福利片| 久久久久久久尹人综合网亚洲| 亚洲午夜三级在线| 久久狠狠婷婷| 日本欧美一区二区三区乱码| 日本久久一区二区| 久久精品国产99久久6| 在线观看av一区二区| 免费成人av资源网| 欧美亚州韩日在线看免费版国语版| 麻豆精品视频在线观看视频| 欧美日韩成人综合| 国产91综合一区在线观看| 久久在线观看免费| 欧美日韩网址| 亚洲日本韩国一区| 久久精品亚洲一区二区| 九九精品一区二区| 日韩网站在线看片你懂的| 91蜜桃在线免费视频| 国产精品三级av在线播放| 亚洲理论在线| 视频精品一区二区| 欧美日韩精品三区| 成人免费不卡视频| 欧美国产欧美综合| 亚洲精品日韩久久| 亚洲a一区二区| 欧美日韩一级二级三级| 高清不卡在线观看av| 久久久综合激的五月天| 精品白丝av| 亚洲不卡一区二区三区| 欧洲一区在线观看| 大白屁股一区二区视频| 国产调教视频一区| 国产日韩欧美一区在线| 美国十次了思思久久精品导航| 欧美一级在线观看| 国内精品久久久久久久果冻传媒 | 国产美女一区| 日韩vs国产vs欧美| 日韩免费视频一区| 一区二区在线不卡| 日韩中文字幕1| 这里只有精品视频在线观看| 欧美日韩专区| 日本午夜精品一区二区三区电影 | 国产欧美日韩亚州综合| 国产情侣久久| 韩国欧美国产一区| 国产亚洲1区2区3区| 久久精品人人| 成人午夜精品在线| 亚洲欧洲日韩综合一区二区| 色吧成人激情小说| www.久久久久久久久| 亚洲美女淫视频| 欧美日韩精品欧美日韩精品一| 欧美国产免费| 亚洲成年人影院| 日韩欧美亚洲国产另类| 亚洲区一区二区三区| 久久99国产精品久久| 国产欧美一区二区精品性色超碰 | 在线成人高清不卡| 欧美日韩国产高清| 亚洲成av人影院| 日韩视频一区二区三区在线播放| 欧美先锋影音| 麻豆精品视频在线观看视频| 国产视频视频一区| 久久婷婷亚洲| 欧美精品成人一区二区在线观看| 天天操天天色综合| 久久久久久久久伊人| 国产精品一区二区三区免费观看| 国产91精品一区二区| 亚洲精品视频免费观看| 日韩一区二区三| 一区二区精品在线| 国产成人av电影免费在线观看| 亚洲欧洲性图库| 制服视频三区第一页精品| 亚洲三级影院| 成人动漫中文字幕| 亚洲电影视频在线| 精品国产免费久久 | 日韩精品一区二区三区四区| 亚洲欧美春色| 欧美国产先锋| 国产精品一卡二| 婷婷综合在线观看| 国产三级一区二区| 欧美体内she精高潮| 亚洲国产综合在线看不卡| 国产一区二区三区在线观看免费 | 欧美精品久久一区二区三区| 激情久久婷婷| 国产精品一区二区三区99| 亚洲精品国产精华液| 精品国产乱码久久久久久久 | 欧美精品一区二区三区很污很色的| 老司机一区二区三区| 91伊人久久大香线蕉| 麻豆精品国产传媒mv男同 | 欧美自拍偷拍一区| 亚洲二区视频| av激情成人网| 久久国内精品自在自线400部| 一区二区三区国产精品| 国产亚洲婷婷免费| 在线观看91精品国产麻豆| 香蕉久久国产| 红桃视频欧美| 99在线精品免费| 国精品**一区二区三区在线蜜桃| 亚洲乱码国产乱码精品精小说| 久久久亚洲午夜电影| 制服视频三区第一页精品| 一本久久综合亚洲鲁鲁五月天| 亚洲精品少妇| 国产精品videosex极品| 成人黄色电影在线| 久草在线在线精品观看| 亚洲国产综合91精品麻豆 | 久久www免费人成看片高清| 午夜精品成人在线视频| 亚洲精品精品亚洲| 欧美激情一区二区三区在线| 欧美大片国产精品| 欧美色手机在线观看| 久久久久久婷| 国产日韩欧美三区| 亚洲承认在线| 欧美日韩成人一区二区三区| 99久久国产综合精品麻豆| 色婷婷综合在线| 亚洲精选国产| 好吊色欧美一区二区三区视频| 99re成人精品视频| 成人性生交大片免费看中文网站| 捆绑紧缚一区二区三区视频| 日韩二区三区四区| 亚洲成国产人片在线观看| 亚洲精品一卡二卡| 国产蜜臀av在线一区二区三区| 日韩欧美一区中文| 欧美夫妻性生活| 欧美日韩精品欧美日韩精品一| 欧美日韩一二三区| 欧美日韩精品一二三区| 欧美日韩久久久一区| 欧美三级三级三级| 精品视频在线免费观看| 欧美少妇一区二区| 欧美日韩国产乱码电影| 在线观看视频一区| 欧亚一区二区三区| 91成人在线观看喷潮| 在线视频你懂得一区二区三区| 久久精品中文| 久久国产免费| 久久久久se| 在线亚洲欧美专区二区| 欧美在线你懂的| 欧美三片在线视频观看| 欧美一区二区视频在线观看| 成人精品一区二区三区四区| aaa国产一区| 日韩国产在线一|