欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python?中的命名空間、變量和范圍

 更新時(shí)間:2022年09月04日 09:52:01   作者:哈哈哈來(lái)了啊啊啊  
Python 是一種動(dòng)態(tài)類(lèi)型語(yǔ)言,在程序執(zhí)行期間,變量名可以綁定到不同的值和類(lèi)型,這篇文章主要介紹了Python?中的命名空間、變量和范圍,需要的朋友可以參考下

Python 中的命名空間、變量和范圍

什么是命名空間?

首先,我們需要感知python中的名稱(chēng)(標(biāo)識(shí)符)是什么。眾所周知,在python中,一切都是對(duì)象。名稱(chēng)幫助我們?cè)L問(wèn)底層對(duì)象。例如,當(dāng)我們做作業(yè)時(shí) a = 1 , 1 是存儲(chǔ)在內(nèi)存中的對(duì)象,a 是我們與之關(guān)聯(lián)的名稱(chēng)。我們可以通過(guò)內(nèi)置函數(shù)獲取某個(gè)對(duì)象的地址(在 RAM 中), ID() .讓我們看看如何使用它。

 a = 1  
 打?。?id(1)=',id(1))  
  
 打?。?id(a)=',id(a)) 輸出: id(1) = 9801248  
 id(a) = 9801248

在這里,兩者都指同一個(gè)對(duì)象 1 ,所以他們擁有相同的id。

現(xiàn)在我們知道了名稱(chēng)是什么,我們可以繼續(xù)討論名稱(chēng)空間的概念。簡(jiǎn)單地說(shuō),命名空間是名稱(chēng)的集合。在 Python 中,您可以將命名空間想象為您定義的每個(gè)名稱(chēng)到相應(yīng)對(duì)象的映射。不同的命名空間可以在給定時(shí)間共存,但完全隔離。當(dāng)我們啟動(dòng) Python 解釋器時(shí),會(huì)創(chuàng)建一個(gè)包含所有內(nèi)置名稱(chēng)的命名空間,并且只要解釋器??運(yùn)行,它就存在。這就是內(nèi)置函數(shù)像 ID() , 打?。ǎ?/code> 我們始終可以從程序的任何部分獲得等。每個(gè)模塊創(chuàng)建自己的全局命名空間。這些不同的命名空間是隔離的。因此,不同模塊中可能存在的相同名稱(chēng)不會(huì)發(fā)生沖突。

變量和表達(dá)式

要將現(xiàn)實(shí)世界的問(wèn)題轉(zhuǎn)化為可以通過(guò)算法解決的問(wèn)題,有兩個(gè)相互關(guān)聯(lián)的任務(wù)。首先,選擇變量,其次,找到與這些變量相關(guān)的表達(dá)式。變量是附加在對(duì)象上的標(biāo)簽;它們不是對(duì)象本身。它們也不是對(duì)象的容器。變量不包含對(duì)象,而是充當(dāng)對(duì)象的指針或引用。例如,考慮以下代碼:

在這里,我們創(chuàng)建了一個(gè)變量 a,它指向一個(gè)列表對(duì)象。我們創(chuàng)建另一個(gè)變量 b,它指向同一個(gè)列表對(duì)象。當(dāng)我們向這個(gè)列表對(duì)象追加一個(gè)元素時(shí),這種變化會(huì)同時(shí)反映在 a 和 b 中。

Python 是一種動(dòng)態(tài)類(lèi)型語(yǔ)言。在程序執(zhí)行期間,變量名可以綁定到不同的值和類(lèi)型。例如,每個(gè)值都是類(lèi)型、字符串或整數(shù);但是,指向該值的名稱(chēng)沒(méi)有特定類(lèi)型。這與許多語(yǔ)言(例如 C 和 Java)不同,其中名稱(chēng)表示內(nèi)存中的固定大小、類(lèi)型和位置。這意味著當(dāng)我們?cè)?Python 中初始化變量時(shí),我們不需要聲明類(lèi)型。此外,變量,或者更具體地說(shuō)是它們指向的對(duì)象,可以根據(jù)分配給它們的值更改類(lèi)型,例如:

變量范圍

了解函數(shù)內(nèi)部變量的作用域規(guī)則很重要。每次執(zhí)行函數(shù)時(shí),都會(huì)創(chuàng)建一個(gè)新的本地命名空間。這表示一個(gè)本地環(huán)境,其中包含由函數(shù)分配的參數(shù)和變量的名稱(chēng)。為了在調(diào)用函數(shù)時(shí)解析命名空間,Python 解釋器首先搜索本地命名空間(即函數(shù)本身),如果未找到匹配項(xiàng),則搜索全局命名空間。這個(gè)全局命名空間是定義函數(shù)的模塊。如果仍未找到該名稱(chēng),它將搜索內(nèi)置命名空間。最后,如果失敗,則解釋器會(huì)引發(fā) NameError 異常??紤]以下代碼:

在示例中,定義了兩個(gè)全局變量。我們需要使用關(guān)鍵字 global 告訴解釋器,在函數(shù)內(nèi)部,我們指的是一個(gè)全局變量。當(dāng)我們將此變量更改為 11 時(shí),這些更改會(huì)反映在全局范圍內(nèi)。但是,我們?cè)O(shè)置為 21 的變量 b 是函數(shù)的局部變量,函數(shù)內(nèi)部對(duì)其所做的任何更改都不會(huì)反映在全局范圍內(nèi)。當(dāng)我們運(yùn)行函數(shù)并打印 b 時(shí),我們看到它保留了它的全局值。

到此這篇關(guān)于Python 中的命名空間、變量和范圍的文章就介紹到這了,更多相關(guān)Python命名空間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談keras的深度模型訓(xùn)練過(guò)程及結(jié)果記錄方式

    淺談keras的深度模型訓(xùn)練過(guò)程及結(jié)果記錄方式

    今天小編就為大家分享一篇淺談keras的深度模型訓(xùn)練過(guò)程及結(jié)果記錄方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 詳解python eval函數(shù)的妙用

    詳解python eval函數(shù)的妙用

    這篇文章主要介紹了詳解python eval函數(shù)的妙用,詳細(xì)介紹了python eval函數(shù)的具體用法和實(shí)例,有興趣的可以了解一下
    2017-11-11
  • Python 爬蟲(chóng)的工具列表大全

    Python 爬蟲(chóng)的工具列表大全

    即然提到了爬蟲(chóng),就從網(wǎng)上理了一份python爬蟲(chóng)相關(guān)的包。包含與網(wǎng)頁(yè)抓取和數(shù)據(jù)處理的Python庫(kù),需要的朋友可以參考下
    2016-01-01
  • 如何基于Python和Flask編寫(xiě)Prometheus監(jiān)控

    如何基于Python和Flask編寫(xiě)Prometheus監(jiān)控

    這篇文章主要介紹了如何基于Python和Flask編寫(xiě)Prometheus監(jiān)控,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python?中?lxml?的?etree?標(biāo)簽解析

    python?中?lxml?的?etree?標(biāo)簽解析

    這篇文章主要介紹了python?中l(wèi)xml的etree?標(biāo)簽解析,文章圍繞主題展開(kāi)詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)或工作有所幫助
    2022-04-04
  • 13個(gè)有趣又好玩的Python游戲代碼分享

    13個(gè)有趣又好玩的Python游戲代碼分享

    今天小編跟大家分享13個(gè)有趣又好玩的Python小游戲示例代碼,教你如何通過(guò)邊打游戲邊學(xué)編程!感興趣的小伙伴快跟隨小編一起學(xué)習(xí)起來(lái)
    2022-02-02
  • Python實(shí)現(xiàn)簡(jiǎn)易五子棋游戲

    Python實(shí)現(xiàn)簡(jiǎn)易五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)易五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • python獲取圖片顏色信息的方法

    python獲取圖片顏色信息的方法

    這篇文章主要介紹了python獲取圖片顏色信息的方法,涉及Python使用pil模操作圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Anaconda3中的Jupyter notebook添加目錄插件的實(shí)現(xiàn)

    Anaconda3中的Jupyter notebook添加目錄插件的實(shí)現(xiàn)

    這篇文章主要介紹了Anaconda3中的Jupyter notebook添加目錄插件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Pytorch基礎(chǔ)教程之torchserve模型部署解析

    Pytorch基礎(chǔ)教程之torchserve模型部署解析

    torchserve是基于netty網(wǎng)絡(luò)框架實(shí)現(xiàn)的,底層使用EpollServerSocketChannel服務(wù)進(jìn)行網(wǎng)絡(luò)通信,通過(guò)epoll多路復(fù)用技術(shù)實(shí)現(xiàn)高并發(fā)網(wǎng)絡(luò)連接處理,這篇文章主要介紹了Pytorch基礎(chǔ)教程之torchserve模型部署和推理,需要的朋友可以參考下
    2023-07-07

最新評(píng)論