衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹Python中的作用域規則以及如何在程序中使用它們

網絡技術干貨圈 ? 來源:網絡技術干貨圈 ? 2023-04-20 16:59 ? 次閱讀

Python 中,每個變量都有一個定義它的作用域,這是指變量在程序中可見的范圍。作用域決定了在哪里可以訪問變量以及在何處可以更改它。在本文中,我們將介紹 Python 中的作用域規則以及如何在程序中使用它們。

全局作用域

在 Python 中,定義在最外層的變量屬于全局作用域。全局作用域包含了整個程序。如果我們定義一個變量在全局作用域內,那么它可以在程序的任何地方使用。

下面是一個例子:

x=5

defprint_x():
print(x)

print_x()#輸出5

在這個例子中,變量 x 定義在程序的最外層,所以它屬于全局作用域。函數 print_x() 可以訪問全局變量 x 并將其打印到控制臺上。

局部作用域

在 Python 中,每個函數都有自己的作用域,稱為局部作用域。局部作用域只包含定義在函數內部的變量。這意味著函數外部定義的變量對于函數內部是不可見的。

下面是一個例子:

defprint_x():
x=5
print(x)

print_x()#輸出5

print(x)#NameError:name'x'isnotdefined

在這個例子中,變量 x 定義在 print_x() 函數內部,所以它屬于局部作用域。這意味著它只能在函數內部使用。如果我們嘗試在函數外部訪問變量 x,Python 將引發 NameError 異常。

嵌套作用域

在 Python 中,函數可以嵌套在其他函數中。嵌套函數可以訪問其父函數的變量,這些變量屬于嵌套作用域。

下面是一個例子:

defouter():
x=5

definner():
print(x)

inner()

outer()#輸出5

在這個例子中,函數 inner() 嵌套在函數 outer() 中。函數 inner() 可以訪問其父函數 outer() 中定義的變量 x。這是因為變量 x 屬于嵌套作用域。

global 關鍵字

有時我們希望在函數內部修改全局變量。為了實現這一點,我們可以使用 global 關鍵字。

下面是一個例子:

x=5

defchange_x():
globalx
x=10

print(x)#輸出5
change_x()
print(x)#輸出10

在這個例子中,我們定義了一個全局變量 x,然后編寫了一個函數 change_x(),它將全局變量 x 的值修改為 10。為了實現這一點,我們在函數內部使用 global 關鍵字來告訴 Python 我們希望修改全局變量 x 的值。

nonlocal 關鍵字

類似地,如果我們在一個嵌套函數中想要修改其父函數中的變量,可以使用 nonlocal 關鍵字。

下面是一個例子:

defouter():
x=5

definner():
nonlocalx
x=10

inner()
print(x)#輸出10

outer()

在這個例子中,我們定義了一個外部函數 outer() 和一個嵌套函數 inner()。變量 x 被定義在外部函數 outer() 中。嵌套函數 inner() 使用 nonlocal 關鍵字來告訴 Python 我們想要修改其父函數 outer() 中的變量 x。

總結

Python 中有三種作用域:全局作用域、局部作用域和嵌套作用域。在函數內部,我們可以使用 global 和 nonlocal 關鍵字來訪問和修改全局變量和父函數中的變量。了解作用域的概念和規則對于編寫清晰、可維護的 Python 代碼至關重要。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85040

原文標題:網絡工程師學Python-15-作用域

文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    何在實際電路中使用帶通濾波器

    在本教程,我們將了解此帶通濾波器、其背后的理論以及何在實際電路中使用它
    的頭像 發表于 09-08 15:52 ?7684次閱讀
    如<b class='flag-5'>何在</b>實際電路<b class='flag-5'>中使</b>用帶通濾波器

    請問cmakelists的變量如何在程序中使用?

    大家好, 我有個問題請教,cmakelists.txt的變量如何在程序中使用?比如以下cmakelists.txt文件的PROJECT_
    發表于 06-11 07:34

    PCB規則以及異形板拼板教材

    PCB規則以及異形板拼板教材
    發表于 07-25 10:06

    何在Python中使用Selenium

    :Elem.send_keys用于在插入值后按Enter  · 代碼行13:關閉  輸出值  用戶名“ guru99”的值和密碼輸入。  上述就是關于如何在Python中使用Selenium的全部內容
    發表于 09-08 18:17

    介紹一些與變量相關的存儲屬性與作用

    為大家介紹一些變量相關的存儲屬性、作用、生命周期以及鏈接屬性的一些知識,有助于大家更好地理解程序,分析
    發表于 02-14 07:00

    python變量的作用

    python變量的作用1. 作用Python作用
    發表于 03-03 16:50

    何在System Generator中使用多個時鐘實現復雜的DSP系統

    了解如何在System Generator中使用多個時鐘,從而可以實現復雜的DSP系統。
    的頭像 發表于 11-27 06:42 ?3805次閱讀

    何在Vivado Logic Analyzer中新儀表板,及使用的好處有哪些

    了解Vivado 2015.1引入的新儀表板改進,如何在Vivado Logic Analyzer中使用它們以及使
    的頭像 發表于 11-26 07:07 ?3062次閱讀

    python變量的作用

    python變量的作用 1. 作用 Python作用
    的頭像 發表于 03-03 16:50 ?1671次閱讀

    剛柔結合PCB的優勢及使用規則

    本文將討論什么是剛柔結合 PCB,使用它們的優勢,以及使用它們設計應用程序規則
    的頭像 發表于 05-07 16:23 ?3650次閱讀
    剛柔結合PCB的優勢及使用<b class='flag-5'>規則</b>

    何在python代碼中使用HTTP代理IP

    何在python代碼中使用HTTP代理IP。
    的頭像 發表于 08-04 15:46 ?1320次閱讀

    何在python代碼中使用HTTP代理IP

    如何再python代碼中使用HTTP代理IP。
    的頭像 發表于 09-13 09:25 ?1043次閱讀

    何在Python中使用MQTT

    本文主要介紹何在 Python 項目中使用?paho-mqtt?客戶端庫 ,實現客戶端與?MQTT?服務器的連接、訂閱、取消訂閱、收發消息等功能。
    的頭像 發表于 12-22 10:41 ?9973次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Python</b><b class='flag-5'>中使</b>用MQTT

    python變量命名規則

    Python是一種高級編程語言,廣泛應用于軟件開發、數據分析和科學計算等領域。在Python,變量是用來存儲數據的容器,它們具有名稱以及
    的頭像 發表于 11-23 15:44 ?1631次閱讀

    如何使用linux下gdb來調試python程序

    中,我們將介紹何在Linux中使用GDB來調試Python程序。 一、安裝GDB和Python
    的頭像 發表于 01-31 10:41 ?2740次閱讀
    大发888下载安装包| 金沙城百家乐大赛规则| 姚记娱乐城官网| 百家乐视频无法显示| 百家乐官网电子作弊器| 现场百家乐机| 百家乐官网可以作假吗| 亚洲顶级赌场 网投领导者| 百家乐是咋玩法| 青岛市| 真人百家乐视频| 三公百家乐官网在线哪里可以玩| 十六浦娱乐城官网| 百家乐赌博网址| 百家乐官网牌具公司| 奇博网上娱乐| 百家乐官网赌博大全| 乐九国际| 百家乐官网站| 百家乐官网怎么稳赢| 皇冠网| 百家乐咋样赢钱| 百家乐数学规律| 百家乐官网代理条件| 蒙特卡罗国际娱乐| 棋牌百家乐赢钱经验技巧评测网| 现场百家乐官网牌路分析| bet365娱乐城注册| 百家乐算牌方| 百家乐官网红桌布| 高手百家乐官网赢钱法| 皇冠现金网骗钱| 真人百家乐斗地主| 做生意摆放老虎好不好| 皇冠百家乐官网赢钱皇冠| 博狗娱乐| 网上百家乐公司| 百家乐赢的秘籍在哪| 百家乐官网AG| 百家乐官网客户端皇冠| 最新娱乐城送体验金|