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

Python變量的作用域使用

 更新時(shí)間:2024年06月26日 15:53:17   作者:ζ小菜雞  
這篇文章主要介紹了Python變量的作用域使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

變量的作用域是指程序代碼能夠訪問該變量的區(qū)域,如果超出該區(qū)域,在訪問時(shí)就會(huì)出現(xiàn)錯(cuò)誤。

在程序中,一般會(huì)根據(jù)變量的“有效范圍”,將變量分為“局部變量”和“全局變量”。

局部變量

局部變量是指在函數(shù)內(nèi)部定義并使用的變量,它只有在函數(shù)內(nèi)部有效。即函數(shù)內(nèi)部的名字只在函數(shù)運(yùn)用時(shí)才會(huì)創(chuàng)建,在函數(shù)運(yùn)行前或者運(yùn)行完畢之后,所有的名字就都不存在了。所以,如果在函數(shù)外部使用函數(shù)內(nèi)部定義的變量,就會(huì)出現(xiàn)拋出NameError異常。

例如,定義一個(gè)名稱為f_demo的函數(shù),在該函數(shù)內(nèi)部定義一個(gè)變量message(稱為局部變量),并為其賦值,然后輸出該變量,最后在函數(shù)體外部再次輸出message變量,代碼如下:

def f_demo():
    message = "唯有被追趕的時(shí)候,你才能真正地奔跑"
    print("局部變量message =", message)  # 輸出局部變量值


f_demo()  # 調(diào)用函數(shù)
print("局部變量message =", message)  # 在函數(shù)體外調(diào)用局部變量

運(yùn)行上面代碼將拋出以下異常(要訪問的變量不存在):

全局變量

與局部變量對(duì)應(yīng),全局變量是能夠作用與函數(shù)內(nèi)外的變量。

全局變量主要有以下兩種情況:

(1)如果一個(gè)變量,在函數(shù)外定義,然后再定義一個(gè)函數(shù),在該函數(shù)內(nèi)也可以訪問到。在函數(shù)體以外定義的變量是全局變量。

message = "唯有被追趕的時(shí)候,你才能真正地奔跑"

def f_demo():
    print("局部變量message =", message)  # 輸出全局變量值

f_demo()  # 調(diào)用函數(shù)
print("局部變量message =", message)  # 在函數(shù)體外調(diào)用全局變量

運(yùn)行以上的代碼,將顯示以下內(nèi)容:

(2)在函數(shù)體內(nèi)定義,并且使用global關(guān)鍵字修飾后,該變量也可以成為全局變量。在函數(shù)體外也可以訪問到該變量,并且在函數(shù)體內(nèi)還可以對(duì)其值進(jìn)行修改。

定義兩個(gè)同名的全局變量和局部變量,并輸出她們的值,代碼如下:

message = "唯有被追趕的時(shí)候,你才能真正地奔跑"  # 全局變量

def f_demo():
    message = "命運(yùn)給予我們的不是失望的酒,而是機(jī)會(huì)之杯"  # 局部變量
    print("局部變量message =", message)  # 輸出局部變量值
    
f_demo()  # 調(diào)用函數(shù)
print("局部變量message =", message)  # 在函數(shù)體外調(diào)用全局變量

運(yùn)行以上的代碼,將顯示以下內(nèi)容:

從上面結(jié)果來看,在函數(shù)內(nèi)部定義的變量即使與全局變量重名,也不影響全局變量的值。

那么想要在函數(shù)體內(nèi)改變?nèi)肿兞康闹?,需要在定義局部變量時(shí),使用global關(guān)鍵字修飾,例如,將上面的代碼修改為以下內(nèi)容:

message = "唯有被追趕的時(shí)候,你才能真正地奔跑"  # 全局變量
print("全局變量message =", message)  # 在函數(shù)體外調(diào)用全局變量

def f_demo():
    global message  # 將message聲明為全局變量
    message = "命運(yùn)給予我們的不是失望的酒,而是機(jī)會(huì)之杯"  # 全局變量值
    print("全局變量message =", message)  # 在函數(shù)體內(nèi)調(diào)用全局變量
f_demo()  # 調(diào)用函數(shù)
print("全局變量message =", message)  # 在函數(shù)體外調(diào)用全局變量

運(yùn)行以上的代碼,將顯示以下內(nèi)容:

  

從上面的結(jié)果可以看出,在函數(shù)體內(nèi)部修改了全局變量的值。

注意:

盡管Python允許全局變量和局部變量重名,但是在實(shí)際開發(fā)時(shí),不建議這么做,因?yàn)槿菀鬃尨a混亂,很難分清那些是全局變量,那些是局部變量。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • sklearn-SVC實(shí)現(xiàn)與類參數(shù)詳解

    sklearn-SVC實(shí)現(xiàn)與類參數(shù)詳解

    今天小編就為大家分享一篇sklearn-SVC實(shí)現(xiàn)與類參數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中處理字符串之endswith()方法的使用簡(jiǎn)介

    Python中處理字符串之endswith()方法的使用簡(jiǎn)介

    這篇文章主要介紹了Python中處理字符串之endswith()方法的使用,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Go1.16引入目錄遍歷優(yōu)化解析

    Go1.16引入目錄遍歷優(yōu)化解析

    Go1.16版本中,對(duì)目錄遍歷進(jìn)行了顯著的優(yōu)化,新增的接口os.ReadDir、(*os.File).ReadDir和filepath.WalkDir使用fs.DirEntry代替os.FileInfo,減少了系統(tǒng)調(diào)用次數(shù),提高了遍歷效率,測(cè)試顯示,優(yōu)化后的遍歷速度比原先快了480%
    2024-10-10
  • pycharm右鍵沒有run,run不了問題的解決

    pycharm右鍵沒有run,run不了問題的解決

    這篇文章主要介紹了pycharm右鍵沒有run,run不了問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python基礎(chǔ)教程之內(nèi)置函數(shù)locals()和globals()用法分析

    Python基礎(chǔ)教程之內(nèi)置函數(shù)locals()和globals()用法分析

    這篇文章主要介紹了Python基礎(chǔ)教程之內(nèi)置函數(shù)locals()和globals()用法,結(jié)合實(shí)例形式分析了locals()和globals()函數(shù)的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-03-03
  • 詳解Python可視化神器Yellowbrick使用

    詳解Python可視化神器Yellowbrick使用

    Yellowbrick是由一套被稱為"Visualizers"組成的可視化診斷工具組成的套餐,其由Scikit-Learn API延伸而來,對(duì)模型選擇過程其指導(dǎo)作用。這篇文章主要介紹了Python可視化神器Yellowbrick使用,需要的朋友可以參考下
    2019-11-11
  • python使用?f?格式化字符串的用法

    python使用?f?格式化字符串的用法

    f-string采用 {content:format} 設(shè)置字符串格式,其中content是替換并填入字符串的內(nèi)容,可以是變量、表達(dá)式或函數(shù)等,format 是格式描述符,這篇文章主要介紹了python使用?f?格式化字符串,需要的朋友可以參考下
    2022-12-12
  • 關(guān)于Python中request發(fā)送post請(qǐng)求傳遞json參數(shù)的問題

    關(guān)于Python中request發(fā)送post請(qǐng)求傳遞json參數(shù)的問題

    這篇文章主要介紹了Python中request發(fā)送post請(qǐng)求傳遞json參數(shù)的問題,在Python中需要傳遞dict參數(shù),利用json.dumps將dict轉(zhuǎn)為json格式用post方法發(fā)起請(qǐng)求,感興趣的朋友跟隨小編一起看看吧
    2022-08-08
  • Python datetime庫函數(shù)的示例詳解

    Python datetime庫函數(shù)的示例詳解

    datetime?是 Python 內(nèi)置的日期時(shí)間處理庫,它包含了處理日期、時(shí)間、時(shí)間間隔等的類和函數(shù),這篇文章主要介紹了Python datetime庫函數(shù)的詳解,需要的朋友可以參考下
    2023-07-07
  • python中列表的切片與修改知識(shí)點(diǎn)總結(jié)

    python中列表的切片與修改知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享了關(guān)于python中列表的切片與修改的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-07-07

最新評(píng)論

马尔康县| 双辽市| 榆树市| 白山市| 大洼县| 德清县| 凌海市| 新蔡县| 黄冈市| 库伦旗| 东乌| 呼图壁县| 嘉善县| 和平县| 崇礼县| 濮阳县| 宣武区| 泰和县| 汤原县| 乳山市| 禄劝| 安陆市| 象山县| 金昌市| 太保市| 晋州市| 伊金霍洛旗| 宜州市| 香河县| 易门县| 平遥县| 伊吾县| 水城县| 永康市| 台东市| 柳州市| 河北区| 仁化县| 玉环县| 南雄市| 叶城县|