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

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

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

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

什么是命名空間?

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

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

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

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

變量和表達式

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

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

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

變量范圍

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

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

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

相關文章

  • 淺談keras的深度模型訓練過程及結果記錄方式

    淺談keras的深度模型訓練過程及結果記錄方式

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

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

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

    Python 爬蟲的工具列表大全

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

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

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

    python?中?lxml?的?etree?標簽解析

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

    13個有趣又好玩的Python游戲代碼分享

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

    Python實現(xiàn)簡易五子棋游戲

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

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

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

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

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

    Pytorch基礎教程之torchserve模型部署解析

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

最新評論