Python 中 OOP 概念的完整指南
已發表: 2020-10-22一段時間以來,面向對象編程或 OOP 一直是軟件世界不可或缺的一部分。 它是一種出色的編程範式,提供了一定程度的自由度,並提高了開發人員的編程成就。
每個開發人員都應該了解某些基本概念和原則。 它們推動了使用此模型開發應用程序的前提。
在這裡,我們將看一下Python 中一些關鍵但基本的 OOP 概念。 這些概念驅使程序員實現更好的結果,並以豐富的方式為他們的應用程序建模。
目錄
什麼是面向對象編程?
對於外行來說,這是我們要開始歸納的地方。 讓我們像外行一樣理解 OOP,以更深入地了解我們如何解決它。
在這種編程結構中,您可以輕鬆地將具有相似屬性或行為的事物組合成一個對象。 如果您在談論人口統計,那麼這將成為此編程模型的單個對象。 同樣,如果你在談論要採取的行動,那麼它就變成了另一個對象。
它們都是包含原始數據的對象。 您的軟件解決方案將以它們共同實現最終目標的方式對這些對象進行編程。 這些對象將按照您的編程一起執行一些操作,並交付結果。
幫助理解這一點的一個很好的例子是電子郵件程序。
假設您有一個包含電子郵件內容的對象,例如收件人姓名和主題。 第二個對象詳細說明了附件和發送電子郵件。 您將設計一個程序,該程序將自動組合這些對象,確保已準備好包含所需附件的完整電子郵件,並將其發送給收件人。
這就是 OOP 的工作原理。 然而,一些概念將其付諸行動。 讓我們快速瀏覽一下這些概念以及它們的功能。
閱讀: Python 是面向對象的語言嗎?
如何定義一個類?
類定義了每個對象,並且是Python 中 OOP 概念的一個重要方面。 假設您有四個對象,例如眼睛、耳朵、嘴巴和鼻子。 這些是面部的一部分,也就是類。
讓我們開始了解如何定義一個類。
假設您正在談論一個名為電子郵件的課程。
班級郵箱:
經過
這就是類的定義方式。 使用“pass”,這樣當您在編譯器中運行代碼時,不會發出錯誤。
僅定義類可能對您沒有多大幫助。 您需要添加一些屬性以使其有吸引力並且代碼有用。 因此,您需要將對象添加到您的類中。
._init_() 方法在定義類中的屬性時被證明是有用的。
這將確保每次為類創建新對象時,此方法都會將參數設置為初始狀態,從而每次都初始化一個新對象。
此方法的第一個參數始終是 self,即使您為其分配了多個參數。
那麼,在這種情況下會發生什麼? 假設您創建了一個新類。 實例被轉移到 self 參數。 結果, ._init_() 可以為定義的對象分配新的屬性。
如果你還在琢磨怎麼用,我們通過一個例子來了解一下。
班級郵箱:
def ._init_(自我,姓名,收件人,地址):
self.name = 名稱
self.recipient = 收件人
self.address = 地址
讓我們分解這段代碼以便更好地理解。
上面代碼中表示的縮進很關鍵。 在 Python 中使用 OOP 編寫程序時,您應該匹配相同的內容。 讓我們了解一下上面代碼中的self變量。
self.name 生成一個名為 name 的屬性。 name 參數的值分配給該屬性。 同樣,屬性和值也被分配給其他自變量。
這些屬性稱為實例。 您將需要指定特定實例中提到的每個屬性的值。 假設有兩種類型的電子郵件——歡迎和培養。 兩種情況下的電子郵件收件人會有所不同(歡迎電子郵件和培養電子郵件)。
另一方面,類屬性是不同的; 它們將包含所有類實例的相同值。 例如,這些都是入站電子郵件。 這是您可以為它們定義的類屬性。

班級郵箱:
#類屬性
電子郵件:“入站電子郵件”
def ._init_(自我,姓名,收件人,地址):
self.name = 名稱
self.recipient = 收件人
self.address = 地址
了解:如何編寫、編譯和運行 Java 項目
了解類和實例變量
讓我們以上面的例子為例,我們創建了一個類屬性以及兩個實例變量,以更好地理解Python 中的 OOP。
班級郵箱:
電子郵件:“入站電子郵件”
def ._init_(自我,姓名,收件人,地址):
self.name = 名稱
self.recipient = 收件人
self.address = 地址
讓我們談談在這個類中實例化對象。 您需要為每個對象設置值。 如本指南前面部分所述,這將是每個對象的初始值。 如果您不為這些對象賦值,那麼您將收到 TypeError。
>>> 電子郵件()
回溯(最近一次通話最後):
<module> 中的文件“<pyshell#6>”,第 1 行
電子郵件 ()
類型錯誤:__init__() 缺少 4 個位置參數:“姓名”、“收件人”和“地址”
我們可以在類名之後立即添加值。
培養電子郵件 = 電子郵件(培養,大衛,[email protected])
歡迎電子郵件 = 電子郵件(歡迎,Daisy,[email protected])
使用上面的代碼,我們生成了兩個實例,用於培養電子郵件和歡迎電子郵件。 讓我們檢查上面代碼的類實例之後定義的 __init__() 。 我們看到四個參數,包括self。 但是,沒有提到 self 的變量。 讓我們明白為什麼?
所以,每當你在一個類中創建一個新對象時,你就是在實例化這個類。 執行此操作時,您將分配一個內存地址,變量將存儲在其中。 一旦你實例化了一個新對象,Python 就會自動創建一個實例,並將它傳遞給 .__init__() 方法中的第一個變量。 結果,在此方法中刪除了自我。
使用類變量,您可以確保您創建的每個實例都有一個與之關聯的變量或值。 這將確保更快、更容易的結果,從而為您的編程得出更安全的結論。
另請閱讀:必須閱讀 47 OOPS 面試問題和答案,適合應屆生和有經驗的人
加起來
我們已經了解了使用 Python OOP 編程模型創建類、對象和方法的各個方面。 除此之外,我們還了解了實例和實例化等概念,它們是 Python 中 OOP 編程的核心。 接下來,您將需要了解管理這些實例和類的原則,例如繼承、多態性、抽象和封裝。 它們是Python 中的核心 OOP 概念,驅動您的應用程序及其結果。
要在 Python 漏斗中走得更遠,您需要清楚並紮根您的基礎知識。 所以,潛入課堂並了解它是如何工作的。 在設置應用程序之前,對這些變量進行一些嘗試,並了解它們的結果。
如果您對學習數據科學以站在快節奏的技術進步的前沿感到好奇,請查看 upGrad 和 IIIT-B 的數據科學 PG 文憑,並為未來提升自己的技能。
為什麼我們使用 OOP?
面向對象編程 (OOP) 是一種編程框架,它依賴於可重用“對象”的開發,其屬性和行為可以被操作、操作和打包。 Python 支持 OOP 和其他框架。 在 Python 中,您通過使用類來實現 OOP。 Python 具有面向對象編程的所有常見特徵。 開發人員在他們的 Python 應用程序中使用 OOP,因為它使代碼更易於重用並且更容易處理更大的程序。 因為一個類只能定義一次並多次使用,OOP 系統可以防止您重複代碼。 因此,OOP 使遵循“不要重複自己”(DRY)概念變得簡單。
什麼是類?
Python 類類似於生成新對象的藍圖。 對像是您在編碼時想要修改或更改的任何東西。 當我們實例化一個類對象時,當我們定義一個變量時,就會從頭開始創建一個新對象。 類對象可以根據需要多次重複使用。 一個類用於構造每個項目。 將其視為某種物品的藍圖。 類列出了該類型對象所需的屬性,但不為它們分配值。 類還指定由相同類型的所有對象共享的方法。
什麼是實例變量?
在 Python 中,類實例擁有實例變量。 實例變量的值可能會根據與其鏈接的實例而改變。 這與類變量不同,類變量只能分配一個值。 實例變量在類方法中聲明。 當我們聲明一個類時,我們可以為實例變量賦值。 當我們聲明類時,我們提供我們希望分配的值作為參數。