0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2023-04-20 16:59 ? 次閱讀

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

全局作用域

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

下面是一個例子:

x=5

defprint_x():
print(x)

print_x()#輸出5

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

局部作用域

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

下面是一個例子:

defprint_x():
x=5
print(x)

print_x()#輸出5

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

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

嵌套作用域

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

下面是一個例子:

defouter():
x=5

definner():
print(x)

inner()

outer()#輸出5

在這個例子中,函數(shù) inner() 嵌套在函數(shù) outer() 中。函數(shù) inner() 可以訪問其父函數(shù) outer() 中定義的變量 x。這是因?yàn)樽兞?x 屬于嵌套作用域。

global 關(guān)鍵字

有時我們希望在函數(shù)內(nèi)部修改全局變量。為了實(shí)現(xiàn)這一點(diǎn),我們可以使用 global 關(guān)鍵字。

下面是一個例子:

x=5

defchange_x():
globalx
x=10

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

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

nonlocal 關(guān)鍵字

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

下面是一個例子:

defouter():
x=5

definner():
nonlocalx
x=10

inner()
print(x)#輸出10

outer()

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

總結(jié)

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






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4802

    瀏覽量

    84885

原文標(biāo)題:網(wǎng)絡(luò)工程師學(xué)Python-15-作用域

文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    何在實(shí)際電路中使用帶通濾波器

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

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

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

    PCB規(guī)則以及異形板拼板教材

    PCB規(guī)則以及異形板拼板教材
    發(fā)表于 07-25 10:06

    何在Python中使用Selenium

    :Elem.send_keys用于在插入值后按Enter  · 代碼行13:關(guān)閉  輸出值  用戶名“ guru99”的值和密碼輸入?! ∩鲜鼍褪顷P(guān)于如何在Python中使用Selenium的全部內(nèi)容
    發(fā)表于 09-08 18:17

    介紹一些與變量相關(guān)的存儲屬性與作用

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

    python變量的作用

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

    何在System Generator中使用多個時鐘實(shí)現(xiàn)復(fù)雜的DSP系統(tǒng)

    了解如何在System Generator中使用多個時鐘,從而可以實(shí)現(xiàn)復(fù)雜的DSP系統(tǒng)。
    的頭像 發(fā)表于 11-27 06:42 ?3785次閱讀

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

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

    python變量的作用

    python變量的作用 1. 作用 Python作用
    的頭像 發(fā)表于 03-03 16:50 ?1642次閱讀

    剛?cè)峤Y(jié)合PCB的優(yōu)勢及使用規(guī)則

    本文將討論什么是剛?cè)峤Y(jié)合 PCB,使用它們的優(yōu)勢,以及使用它們設(shè)計(jì)應(yīng)用程序規(guī)則。
    的頭像 發(fā)表于 05-07 16:23 ?3629次閱讀
    剛?cè)峤Y(jié)合PCB的優(yōu)勢及使用<b class='flag-5'>規(guī)則</b>

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

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

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

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

    何在Python中使用MQTT

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

    python變量命名規(guī)則

    Python是一種高級編程語言,廣泛應(yīng)用于軟件開發(fā)、數(shù)據(jù)分析和科學(xué)計(jì)算等領(lǐng)域。在Python,變量是用來存儲數(shù)據(jù)的容器,它們具有名稱以及
    的頭像 發(fā)表于 11-23 15:44 ?1562次閱讀

    如何使用linux下gdb來調(diào)試python程序

    中,我們將介紹何在Linux中使用GDB來調(diào)試Python程序。 一、安裝GDB和Python
    的頭像 發(fā)表于 01-31 10:41 ?2692次閱讀