Python 類和對象 [附示例]

已發表: 2021-06-25

OOP——面向對象編程的縮寫——是一種依賴對象和類來創建函數式程序的範例。 OOP 致力於代碼的模塊化,類和對像有助於編寫可重用的簡單代碼片段,這些代碼片段可用於創建更大的軟件功能和模塊。 C++、Java 和 Python 是三種最常用的面向對象編程語言。 然而,當談到今天的用例時——比如數據科學和統計分析——Python 勝過其他兩個。

這並不奇怪,因為全球的數據科學家都對 Python 編程語言的功能發誓。 如果您打算開始從事數據科學的職業並希望掌握 Python,那麼了解類和對象應該是您的首要任務。

通過本文,我們將幫助您了解 Python 中對象和類背後的所有細微差別,以及如何開始創建自己的類並使用它們。

目錄

Python 中的類

Python 中的類是用戶定義的原型,使用它創建對象。 簡而言之,類是一種將數據功能捆綁在一起的方法。 這兩個關鍵字很重要。 數據是指實例化或定義的任何變量,而功能是指可以對該數據執行的任何操作。 連同捆綁在一個包中的數據和功能,我們得到了類。

要了解創建類的必要性,請考慮以下簡單示例。 假設,您希望跟踪您附近的貓,它們具有不同的特徵,如年齡、品種、顏色、體重等。您可以使用列表並以 1:1 的方式跟踪元素,即,您可以將品種跟踪到年齡,或年齡到體重使用列表。 如果應該有 100 只不同的貓怎麼辦? 如果要添加更多屬性怎麼辦? 在這種情況下,使用列表往往是雜亂無章的。

這正是課程的用武之地!

類可幫助您創建具有自己的數據成員(變量)和成員函數的用戶定義數據結構。 您可以通過為類創建一個對象來訪問這些變量和方法(我們稍後會詳細討論)。 所以,從某種意義上說,類就像一個對象的藍圖。

此外,創建類會自動創建一種新類型的對象——這允許您進一步創建更多相同類型的對象。 每個類實例都可以附加屬性以保持其狀態。 類實例本身可以具有用於修改狀態的方法(由它們的類定義)。

Python類的一些要點:

  • 類是使用關鍵字class 創建的。
  • 屬性是特定於您創建的類的變量。
  • 這些屬性在本質上始終是公共的,可以通過在類名後面使用點運算符來訪問。 例如, ClassName.AttributeName將為您獲取該特定類的特定屬性詳細信息。

定義類的語法:

類類名:

# 語句-1

.

.

.

# 語句-N

例如:

貓班:

經過

在上面的示例中,class 關鍵字表示您正在創建一個類,後跟該類的名稱(在本例中為 Cat)。 這個類的作用還沒有定義。

在 Python 中使用類的優點

  • 類可幫助您將所有不同類型的數據正確組織在一個地方。 通過這種方式,您可以保持代碼的簡潔和模塊化,從而提高代碼的可讀性。
  • 使用類可以讓您受益於另一種 OOP 範式——稱為繼承。 這是一個類繼承另一個類的屬性的時候。
  • 類允許您覆蓋任何標準運算符。
  • 類使您的代碼可重用,從而使您的程序更加高效。

Python 中的對象

對像只是您定義的任何類的一個實例。 創建類的那一刻,已經創建了一個自動實例。 因此,就像在示例中一樣,Cat 類自動實例化一個對象,就像一隻真正的貓——波斯品種和 3 歲。 您可以擁有許多具有不同屬性的貓的不同實例,但要使其有意義 - 您需要一個類作為您的指南。 否則,您最終會感到迷茫,不知道需要什麼信息。

一個對像大致可以通過三件事來表徵:

  • 狀態:這是指任何對象的各種屬性以及它可以顯示的各種屬性。
  • 行為:這基本上表示該對象的方法。 它還反映了該特定對像如何與其他對象交互或響應。
  • 身份:身份是對象的唯一名稱,可以在需要時調用它。

1. 聲明對象

聲明對像也稱為實例化一個類,因為一旦定義了一個類,就會在其自身中創建一個默認對象(如我們之前所見)——這是該類的實例。 同樣,每次創建對象時,實際上都是在創建類的新實例。

就我們前面提到的三件事(狀態、行為、身份)而言,所有的實例(對象)共享行為和狀態,只是身份不同。 根據程序員的要求,一個類可以有任意數量的對象。

看看下面的例子。 這是一個解釋如何實例化類的程序。

貓班:

# 一個簡單的類

# 屬性

attr1 = “貓”

attr2 = “貓”

# 一個示例方法

def 樂趣(自我):

打印(“我是一個”,self.attr1)

打印(“我是一個”,self.attr2)

# 驅動代碼

# 對象實例化

湯姆=貓()

# 訪問類屬性

# 通過對象和方法

打印(湯姆.attr1)

湯姆.fun();

這個簡單程序的輸出如下:

貓科動物

我是貓科動物

我是一隻貓

如您所見,我們首先創建了一個名為 cat 的類,然後實例化了一個名為“Tom”的對象。 我們得到的三個輸出如下:

  • 貓科動物——這是語句 print(Tom.attr1) 的結果。 由於 Tom 是 Cat 類的對象並且 attr1 已設置為 Feline,因此該函數返回輸出 Feline。
  • 我是貓科動物——Tom.fun(); 使用名為 Tom 的對象來調用 cat 類中的一個函數,稱為 'fun'。 Tom 對象為函數帶來了屬性,因此函數輸出以下兩個句子——“I'm a feline”。
  • 我是一隻貓——原因與上述相同。

現在您已經了解了類和對像在 Python 中是如何工作的,讓我們來看看一些基本方法。

2. 自我方法

任何類中定義的所有方法都需要在函數定義中具有額外的第一個參數。 程序員沒有給這個參數賦值。 但是,當調用該方法時,Python 會為其提供一個值。

因此,如果你定義一個沒有參數的函數,它在技術上仍然有一個參數。 這在 Python 中稱為“自我”。 為了更好地理解這一點,您可以修改 C++ 中的指針概念或在 Java 中引用它們。 self 方法的工作方式基本相同。

為了更好地理解這一點——當我們調用對象的任何方法時,例如:

myObject.myMethod(arg1, arg2),Python 自動將其轉換為 myClass.myMethod(myObject, arg1, arg2)。

所以你看,對象本身成為方法的第一個參數。 這就是 Python 中的 self 的意義所在。

3. __init__ 方法

此方法類似於 Java 或 C++ 中的構造函數。 與構造函數一樣,init 方法用於初始化對象的狀態。 這包含在創建對象時執行的指令(語句)的集合。 當為一個類實例化一個對象時,init 方法會自動運行你初始化的方法。

這是一段代碼可以更好地解釋這一點:

# 帶有 init 方法的示例類

類人:

# 初始化方法或構造函數

def __init__(self, name):

self.name = 名稱

# 樣本方法

def say_hi(self):

print('你好,我叫', self.name)

p =人(“山姆”)

p.say_hi()

輸出:

你好,我的名字是山姆

從世界頂級大學在線學習數據分析課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

類和實例變量

實例變量對於每個實例都是唯一的,而類變量用於類的所有實例共享的方法和屬性。 因此,實例變量基本上是在構造函數或帶有 self 的方法中賦值的變量。 另一方面,類變量是那些在類中賦值的變量。

通過以下代碼了解如何使用構造函數(init 方法)定義實例變量:

貓班:

# 類變量

動物='貓'

# init 方法或構造函數

def __init__(自我,品種,顏色):

# 實例變量

self.breed = 品種

self.color = 顏色

# Dog 類的對象

湯姆=貓(“波斯”,“黑色”)

Snowy = cat(“獨立”、“白色”)

打印(“湯姆詳細信息:')

print('Tom is a', Tom.animal)

print('品種:', Tom.breed)

打印('顏色:',湯姆.color)

print('\n下雪細節:')

print("Snowy is a', Snowy.animal)

print('品種:', Snowy.breed)

print('顏色:', Snowy.color)

如果您逐行遵循上述代碼,您將收到以下輸出:

輸出:

湯姆詳細信息:

湯姆是一隻貓

品種:波斯

顏色:黑色

雪景詳情:

雪是一隻貓

種族:獨立

白顏色

綜上所述

Python 是一種相對簡單的編程語言,尤其是對於初學者而言。 一旦掌握了它的基礎知識,您就可以使用各種 Python 庫並解決特定於數據的問題。 但是,請記住,雖然旅程從了解類和對像開始,但您還必須學習如何使用不同的對象、類及其細微差別。

我們希望這篇文章有助於澄清您對 Python 中的類和對象的疑問。 如果您有任何問題,請在下方給我們留言 - 我們會盡快回复您!

如果您正在尋找職業轉變並尋求專業幫助 - upGrad在這里為您服務。 查看我們IIIT-B合作提供的數據科學執行 PG 計劃熟悉 14 多種編程語言和工具(包括 Python),同時還可以訪問 30 多個行業相關項目。 任何流派的學生都可以報名參加該課程,前提是他們的學士學位至少達到 50%。

我們在 85 多個國家/地區擁有穩固的學習者基礎、全球 40,000 多名付費學習者和 500,000 多名快樂工作的專業人士。 我們的 360 度職業幫助,結合全球學生的學習和頭腦風暴,讓您充分利用您的學習體驗。

Python 中的類和對像是什麼?

類是綁定實體的屬性和功能的模板或藍圖。 在 Python 中,關鍵字 class 用於定義一個類。 所有具有相似屬性的實體或對像都可以放在一個類下,並且可以由成員函數訪問。
對像是類的一個實例。 一旦創建了一個類,對象就會獲得該類的所有信息。 它就像具有實際值的受人尊敬的類的副本。 一個對象由三個因素分類:
一種。 狀態
灣。 行為
C。 身份

Python 遵循哪種編程範式?

有四種主要的可區分範式,緊隨其後的是 Python 面向對象、過程、函數和命令式。 Python 強烈支持面向對象的概念; 但是,它不是純粹的面向對象的編程語言。
支持各種編程範式的原因是它明顯受到一些腳本(如 CoffeeScript)和麵向對象的編程語言(如 Ruby)的影響。 它還與 R 等語言相結合,以提高效率和計算能力。
作為一種多範式語言,Python 被認為是最通用的語言之一。 它廣泛用於開發、數據分析、網頁抓取和自動化。

Python 中的訪問修飾符是什麼?

與其他面向對象的編程語言類似,Python 中的類也具有三個訪問修飾符:
一種。 公共訪問修飾符:指定為公共的類成員可以被任何函數直接訪問,即成員函數以及非成員函數。 如果未指定訪問說明符,則編譯器默認將所有類成員視為公共成員。
灣。 私有訪問修飾符:這些類成員對其他類成員隱藏。 它們只能由定義它們的類的成員函數訪問。
C。 受保護的訪問修飾符:指定為受保護的類成員只能被同一個類的成員函數訪問,如果試圖在類外訪問會拋出錯誤。 私有訪問說明符和受保護訪問說明符之間的唯一主要區別是受保護成員可以被繼承,而私有成員不能被繼承。