如何在Python中比較模組、類和名稱空間?


Python允許你將定義儲存到檔案中,然後在指令碼或互動式直譯器例項中使用它們。模組是一個包含可以匯入到其他模組或主模組中的定義的檔案。

因此,Python模組只不過是一個包含可重用程式碼的包。模組儲存在一個包含__init__.py檔案的資料夾中。模組可以包含函式和類。import關鍵字用於匯入模組。包含Python命令和定義的檔案稱為模組。

這些名為.py的檔案包含Python程式碼,例如example.py,模組名稱為example。模組用於將大型應用程式分解成更小、更易於管理的檔案。使用模組的先決條件是你應該安裝Python 3並設定程式設計環境。

Python中的模組

模組本質上是一組包含類和函式的檔案。你可以使用現有的模組或在python中構建自定義模組。在下面的示例中,你可以瞭解如何建立一個簡單的使用者定義模組。

示例

讓我們來看一個建立簡單python模組的例子。讓我們建立一個名為ad.py的python檔案。

def add(x, y):
   return (x+y)

輸出

儲存上述檔案後,將執行以下操作:建立一個名為ad.py的模組。

Python中的名稱空間

在Python中,我們可以將定義從一個模組匯入到另一個模組或互動式直譯器中。為此,我們使用import關鍵字。名稱空間是一種實現作用域的方法。每個包、模組、類、函式和方法函式在Python中都有自己的“名稱空間”,變數名在其中解析。

當函式、模組或包被求值(即執行開始時)時,就會建立一個名稱空間。可以將其視為“求值上下文”。例如,當函式完成執行時,名稱空間將被移除。變數已被移除。如果在區域性名稱空間中找不到名稱,還會使用全域性名稱空間。

Python程式中有四種不同的名稱空間:

  • 內建

  • 全域性

  • 閉包

  • 區域性

這些具有不同的生命週期。名稱空間根據需要在Python程式執行過程中建立和刪除。通常會有許多名稱空間同時處於活動狀態。

內建名稱空間

所有Python的內建物件都有名稱,這些名稱都包含在內建名稱空間中。執行Python時,這些始終可用。

示例

例如,當我們執行賦值a = 2時,a是我們賦予它的名稱,2是儲存在記憶體中的物件。透過內建函式id,我們可以獲取某個物件在記憶體中的地址()。讓我們檢查一下它的應用。

a = 2
print('id(2) =', id(2))
print('id(a) =', id(a))

輸出

獲得的輸出如下。

id(2) = 140378523304208
id(a) = 140378523304208

全域性名稱空間

多個名稱空間可以包含相同的物件名稱,因為每個名稱空間都保持與其他名稱空間的隔離。

示例

下面的例子可以用來理解全域性名稱空間。

count = 10
def method():
   global count
   count = count + 1
   print(count)
method()

輸出

獲得的輸出如下。

11

區域性名稱空間

類、函式、迴圈或任何其他型別的程式碼塊都有一個宣告的區域性名稱空間。函式或程式碼塊的已定義名稱特定於這些區域。變數名只能在其定義的函式或程式碼塊內訪問。

示例

在這種情況下,函式add在區域性名稱空間中定義變數num1、num2和temp。

N1 = 20
N2 = 30
def add(num1, num2):
   temp = num1 + num2
   return temp

輸出

獲得的輸出如下。

50

更新於:2023年5月11日

634 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始
廣告