你如何比較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()`,我們可以獲得某個物件在RAM中的地址。讓我們檢查一下它的應用。
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