Python中的面向對象編程概念
已發表: 2020-12-01面向對像是一種編程範式,它遵循類和對象的概念來代替函數和邏輯。 它也被稱為花哨的編碼方式,以提高代碼可讀性和可維護性的方式組織代碼。 OOP 概念是編程中的一個重要主題,有助於為數據科學中的各種任務構建可重用的模塊。
這通常是使用各種庫(例如 Pytorch)構建深度學習模型的先決條件,其中基礎模型被重用於添加自定義層。 讓我們探討一下這個概念教了什麼,以及如何在實際用例中應用它。
目錄
什麼是 OOP 概念?
考慮一款可以是任何品牌的智能手機,但它們是所有品牌中的各種常見事物。 所有這些都有屏幕、揚聲器、按鈕,在軟件層面上,幾乎所有這些都是 android 驅動的。 現在考慮一個案例,每個公司都從頭開始製作他們的軟件,甚至是控制大部分硬件組件的內核。
這將成為一個乏味且昂貴的過程,因此會增加設備的價格。 如果有任何製造商可以根據他們的要求隨時間更改的抽像或通用模型怎麼辦? 這個概念試圖捕捉這種基於類的方法,其中代碼在具有不同訪問器方法的類中結構化。
什麼是類和對象?
類是必須實現的藍圖。 如果我們考慮前面的示例,我們可以擁有呼叫某人、接聽電話、消息、播放音樂或做其他事情的功能。
所有這些東西對於每個智能手機來說都是通用的,它們的內部工作也是相似的,它們可以被認為是智能手機的一類功能或一類。 對象可以定義為所有將在其產品中使用此通用實現並進行修改的智能手機品牌。
這個基類可以有多個實例,每個實例都可以保持不同的值狀態,而不會干擾其他對象。 在 Python 中,可以使用保留關鍵字 class 來聲明一個類。 此外,__init__ 構造函數用於初始化類變量。
類公司:
def __init__ (自我):
self.name = 'upGrad'
def display_name(自我):
print(f"公司名稱是:{self.name}")
厘米 = 公司()
cm.display_name()
另請閱讀:印度的 Python 開發人員薪水
OOP 的不同支柱
現在我們已經熟悉了這個範式的基本構建塊,讓我們看一下這個概念的一些最重要的特性/特徵:
封裝
這表明類的方法(或函數)和與之相關的數據被封裝或保護免受意外或外部訪問。 這意味著在私有或受保護範圍內定義的屬性在類外是不可訪問的。
Python 有一個問題,即在該語言中沒有私有變量的概念,因此屬性可以在類外部訪問。
有一種方法可以通過在聲明開頭使用雙下劃線來識別私有屬性,如果您嘗試通過相同的對像在類外部訪問它,您將收到 AttributeError 提示,因為 Python 在檢測到時應用名稱修改一個私有變量。 這不會為您的屬性提供任何安全性,因為它們仍然可以訪問。
遺產
正如這個詞所暗示的那樣,它將現有類的一部分稱為父類到一個稱為子類的新類,幾乎沒有或沒有變化。 我們可以通過這種方式將其與我們的示例聯繫起來,即所有智能手機品牌都繼承了一個通用電話類,這將幫助他們執行基本功能,此外,他們還可以根據自己的需要添加額外的代碼來增強用戶體驗。 在 Python 中,繼承一個類是通過以下方式完成的:

A類:
一些內容
B(A)類:
派生類的內容
還有另一個與繼承相關的概念稱為函數覆蓋。 假設普通智能手機的攝像頭功能不是很好,製造商對此有更好的解決方案。 他們可以通過在子類中再次定義它來直接覆蓋這個函數並在那裡應用更改。
抽象
它定義了子類實現的藍圖或接口。 這意味著在基類中定義了一些方法,這些方法沒有完全實現,只定義了一個抽象視圖。 它可以幫助跟踪要創建的模塊和子模塊的各種功能。
例如,一些智能手機支持 NFC(近場連接),此功能可以在基類中定義,其實現可以在生成的手機的子類中編碼。 這樣,抽象基類就可以提供模塊和後續實現的整體視圖。 這是一個例子:
上課電話:
高清相機(自己):
經過
def NFC(自我):
經過
Xyz 類(電話):
def NFC(自我):
返回真
了解:頂級 Python 工具
多態性
如果我們按照詞根的意思去,它意味著同一事物的多種形式。 多態性根據傳遞的參數的數量或類型定義函數。 例如,Python 中的 length 函數可以採用任何類型的可迭代對像或對象並返回整數長度。
這也可以被引用為函數重載,但這是 Python 語言中的一個問題。 我們不能用不同的參數定義同名的函數,如果完成了,那麼它只考慮最後一個條目。
OOP 的實際用例
我們已經了解了這個概念的全部內容以及它提供的功能。 查看一些可以應用此概念的示例:
Jinja 模板:如果你對處理路由和服務器端的 Python Flask 框架有一定的經驗,那麼這個模板有助於在前端處理這些數據。 通常,會創建一個基本 HTML 文件,然後由所有頁面繼承以在整個網站中具有相同的佈局。
Kivy Applications:這是一個庫,允許您構建基於 GUI 的跨平台(android 和 IOS)python 應用程序,這裡的大部分編程都是基於 OOP 概念的。
ORM:對象關係映射器提供了一種使用任何語言在應用程序代碼中定義關係數據庫的方法。 例如,在 Django 中,您可以使用類為不同類型的用戶定義不同類型的模型。
結論
在本文中,我們討論了 OOP 概念是什麼,它是構建塊(類和對象)、不同的支柱,並強調了採用這種範式的一些示例。 由於更好的代碼管理、協作以及為依賴於此的其他程序提供抽像功能,許多地方都考慮了這種編程方法。
如果您想了解 Python、數據科學,請查看 IIIT-B 和 upGrad 的數據科學 PG 文憑,該文憑專為在職專業人士而設,提供 10 多個案例研究和項目、實用的實踐研討會、與行業專家的指導,與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。
什麼是面向對象?
面向對象編程,縮寫為OOP,是一種計算機編程技術,它根據數據組織軟件設計,而不是根據功能和邏輯來組織軟件設計。 OOP 關注對象,即開發人員希望控制的具有不同屬性和行為的數據字段,而不是管理它們所需的邏輯。 這種編程方法非常適合不斷更新或維護的大型複雜應用程序。 OOP 涵蓋製造、設計和移動應用程序計劃。 這種語言的其他優點是代碼的可重用性、可伸縮性和效率。
OOP 中有哪些不同的語言?
面向對象的編程語言構成了當今計算機行業中最常用的幾種編碼語言。 OOP 語言隨處可見。 這些語言使用同時保存數據和代碼的對象。 封裝、抽象、多態和繼承是面向對象的編程思想。 流行的面向對象編程語言包括 Java、Python、C++、Lisp 和 Perl。 他們利用類和對象範式協助編程。 其他支持面向對象原則的語言有 Perl、Objective-C、Dart、Lisp、JavaScript 和 PHP。
為什麼首選 OOP?
首選 OOP 的原因有很多。 開發人員可以重用面向對象的代碼。 您還可以使用繼承來複製以前創建的信息和功能。 這節省了時間,簡化了代碼,節省了空間,並使我們的手指更容易編碼。 由於大部分代碼都在一個位置並被調用和重用,因此維護起來相當容易。 雖然大多數語言都提供一定程度的安全性,但面向對象的語言更方便,因為封裝包括安全性。 面向對象的編程語言將程序劃分為對象和類。 這是有利的,因為它為您的應用程序提供了更加模塊化的框架。