最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年06月12日 15:57:09   作者:程序員的人生A  
這篇文章主要介紹了簡單了解Python變量作用域正確使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

在寫代碼的時候,免不了要使用變量。但程序中的一個變量并不一定是在哪里都可以被使用,根據(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): 50
X in the end of func(x): 2
X after calling func(x): 50

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

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

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

同的變量,也沒有什么關聯(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 沒有關系。只不過它的初始值是由外面那個 x 傳遞過來的。

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

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

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

return x

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

x = func(x)

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

在 Python 的函數(shù)定義中,可以給變量名前加上 global 關鍵字,這樣其作用域就不再局限在函數(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): 50
X in the end of func(x): 2
X after calling func(x): 2

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

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

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

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): 50
X in the end of func(x): 50
X after calling func(x): 50

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

x = 2

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 在Python中實現(xiàn)函數(shù)重載的示例代碼

    在Python中實現(xiàn)函數(shù)重載的示例代碼

    這篇文章主要介紹了在Python中實現(xiàn)函數(shù)重載的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • python生成可執(zhí)行exe控制Microsip自動填寫號碼并撥打功能

    python生成可執(zhí)行exe控制Microsip自動填寫號碼并撥打功能

    這篇文章主要介紹了python生成可執(zhí)行exe控制Microsip自動填寫號碼并撥打,在這需要注意一個問題,必須是已經(jīng)運行Microsip.exe文件,具體實現(xiàn)代碼跟隨小編一起看看吧
    2021-06-06
  • python 實現(xiàn)對文件夾內(nèi)的文件排序編號

    python 實現(xiàn)對文件夾內(nèi)的文件排序編號

    下面小編就為大家分享一篇python 實現(xiàn)對文件夾內(nèi)的文件排序編號,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python try except finally資源回收的實現(xiàn)

    Python try except finally資源回收的實現(xiàn)

    這篇文章主要介紹了Python try except finally資源回收的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 解決matplotlib.pyplot在Jupyter notebook中不顯示圖像問題

    解決matplotlib.pyplot在Jupyter notebook中不顯示圖像問題

    這篇文章主要介紹了解決matplotlib.pyplot在Jupyter notebook中不顯示圖像問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python使用廣度優(yōu)先搜索遍歷混亂地鐵問題

    Python使用廣度優(yōu)先搜索遍歷混亂地鐵問題

    這篇文章主要介紹了Python使用廣度優(yōu)先搜索遍歷混亂地鐵問題,廣度優(yōu)先搜索算法(又稱寬度優(yōu)先搜索)是最簡便的圖的搜索算法之一,這一算法也是很多重要的圖的算法的原型,需要的朋友可以參考下
    2023-04-04
  • python操作yaml說明

    python操作yaml說明

    這篇文章主要介紹了python操作yaml說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 淺談Python實時檢測CPU和GPU的功耗

    淺談Python實時檢測CPU和GPU的功耗

    本文主要介紹了淺談Python實時檢測CPU和GPU的功耗,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • 如何在ubuntu中切換使用不同版本的python

    如何在ubuntu中切換使用不同版本的python

    在ubuntu環(huán)境下進行嵌入式開發(fā),我們在進行不同的項目開發(fā)時,可能會遇到python環(huán)境不統(tǒng)一的情況,下面這篇文章主要給大家介紹了關于如何在ubuntu中切換使用不同版本的python的相關資料,需要的朋友可以參考下
    2023-02-02
  • python中可以發(fā)生異常自動重試庫retrying

    python中可以發(fā)生異常自動重試庫retrying

    這篇文章主要介紹了python中可以發(fā)生異常自動重試庫retrying,retrying是一個極簡的使用Python編寫的庫,主題更多相關內(nèi)容需要的朋友可以參考一下
    2022-06-06

最新評論

蚌埠市| 定南县| 武夷山市| 辉县市| 镇康县| 时尚| 司法| 滦南县| 西乌珠穆沁旗| 玉林市| 自贡市| 佳木斯市| 庆城县| 南投市| 牟定县| 永兴县| 福安市| 西藏| 黔西县| 万年县| 铁岭县| 曲麻莱县| 汉源县| 泰来县| 丰都县| 班戈县| 潜山县| 定边县| 额尔古纳市| 乌兰浩特市| 同江市| 呼伦贝尔市| 昭平县| 清镇市| 武城县| 花垣县| 罗江县| 江西省| 东台市| 榆树市| 黄平县|