[Python基礎]淺談類別

更新於 發佈於 閱讀時間約 5 分鐘

本文讓我們來淺談一下類別是什麼?

若想看詳細一點的python官方教學可點此連結

Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具

實例就像是用那個模具做出來的蛋糕。

蛋糕模具(類別)定義了蛋糕應該有的形狀和特徵,

每個具體的蛋糕(實例)都有自己的名字、口味等屬性

舉個例子,讓我們創建一個簡單的蛋糕模具(類別):

class Cake:
def __init__(self, flavor, layers):
self.flavor = flavor #設定口味
self.layers = layers #設定層數

def describe(self):
print(f"This cake is {self.flavor} flavor and has {self.layers} layers.")

這個蛋糕模具有一個初始化方法 __init__,用來設定蛋糕的口味和層數,還有一個 describe 方法,用來描述蛋糕的特徵,

初始化方法 __init__,在每次使用類別創立物件時,都會先初始化這方法裡面的屬性flavor,layers,這個方法允許你在創建實例的同時,設定物件的初始屬性。

現在,我們可以用這個模具創建不同口味和層數的蛋糕:

利用類別cake(蛋糕模具)來創建兩個不同口味跟層數的蛋糕吧。

# 創建一個巧克力蛋糕
chocolate_cake = Cake(flavor="Chocolate", layers=3)

# 創建一個草莓蛋糕
strawberry_cake = Cake(flavor="Strawberry", layers=2)

# 描述這些蛋糕
chocolate_cake.describe()
strawberry_cake.describe()
程式輸出圖

程式輸出圖

chocolate_cake = Cake(flavor="Chocolate", layers=3),這段意思就是用剛剛我們寫的類別(Cake)蛋糕模具來創建一個chocolate_cake的物件,其中包含了有口味跟層數這個屬性,會想這個屬性看起來就跟宣告的變數差不多阿。

有一些重要的差異。類別中的屬性與在外部宣告的變數有一些特殊之處:

  1. 作用域: 類別中的屬性屬於該類別的作用域,意味著它們可以在整個類別內部使用。這樣的封閉性有助於組織和保護數據。
  2. 實例化: 類別中的屬性是在實例化(創建物件)時初始化的。每個實例都有自己的一組屬性,這與在外部宣告的變數不同,它們的值可以在任何地方更改。
  3. 繼承: 如果你使用了繼承,子類別可以繼承父類別中的屬性,進行擴充或覆寫。這樣有助於實現代碼的重用性和結構。

讓我們引用剛剛的蛋糕模具在來創建一個香蕉蛋糕吧

banana_cake = Cake(flavor="banana", layers=5)
banana_cake
創建香蕉蛋糕 (物件)

創建香蕉蛋糕 (物件)

疑怎麼跟剛剛不一樣,因為只創建物件,並未使用describe這個方法,所以只單純創建物件並沒有呼叫這個方法印出print(f"This cake is {self.flavor} flavor and has {self.layers} layers.")


想像一下,想在做蛋糕時忽然忘記剛剛放的是什麼調味,也可以只使用類別的屬性來查看,或者是修改調味

#使用類別的屬性
banana_cake.flavor
print(banana_cake.flavor)
使用類別的屬性

使用類別的屬性

修改蛋糕的口味(物件的屬性)

#修改物件的屬性
banana_cake.flavor = 'apple'
print(banana_cake.flavor)
修改口味

修改口味

好,想像一下我們剛剛原本想做香蕉蛋糕,但臨時想吃蘋果口味的就修改了一下口味(屬性),讓我們將蛋糕做出,使用方法來印出,看是否有像我們想像的一樣是蘋果口味了

#做出蛋糕來,看是否有更換了口味了
banana_cake.describe()
變蘋果口味了

變蘋果口味了

好的,真的變蘋果口味了,讓我們來總結一下本文的學習總結


總結

類別,方法

類別,方法

實例,屬性

實例,屬性

(蛋糕模型)類別定義: 使用 class 關鍵字創建類別,定義類別的屬性和方法。

(創造物件時會導入的屬性)初始化方法 __init__: 用 __init__ 方法初始化類別的屬性,這是在創建類別實例時自動調用的方法,巧克力,層數

(口味,層數)屬性: 類別中的變數被稱為屬性,它們用來描述類別的狀態。

(巧克力蛋糕)實例: 通過實例化類別來創建類別的具體物件,每個實例都有自己的一套屬性。

(烤箱,印出蛋糕的口味及層數)方法: 類別中的函數被稱為方法,它們用來執行某些操作。方法通常作用於類別的屬性。


希望這樣解說 大家能對類別有基本的認識 ,若有什麼想法跟疑問歡迎留言讓我知道 謝謝




avatar-img
128會員
217內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。
在Python中,有三種變數作用域:全域、區域和封閉。 區域作用域(Local Scope): 在函式內部定義的變數具有區域作用域,它們只能在該函式內部訪問。 例如: def my_function(): local_variable = 10
本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。
在Python中,有三種變數作用域:全域、區域和封閉。 區域作用域(Local Scope): 在函式內部定義的變數具有區域作用域,它們只能在該函式內部訪問。 例如: def my_function(): local_variable = 10
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
大小寫轉換 空白處理 搜尋和替換字串 分割和連接 判斷字串特性 對齊
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
本章節是一個初級的 TypeScript 教學,主要介紹了 TypeScript 中物件導向程式設計的各種核心概念,包括類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等。每個概念都通過詳細的解釋和實例代碼來進行深入的介紹。
ITS python認證內容含蓋六大主題
Thumbnail
這一節談的是用物件導向程式設計(object-oriented programming, OOP)的方式來實作隨機漫步。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
NumPy(Numeric Python)是Python中用於科學計算的核心庫之一。它提供了高性能的多維陣列對象(即ndarray)以及用於處理這些陣列的各種函數和工具。 在NumPy中,有幾個常用的指令可以用來創建陣列
Thumbnail
讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢? 可以使用fallback 參數來指定預設值。 這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。 讓我們來假設一個案例做說明: 先故意將先前範例的port的資料刪掉。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
當你想讓原本函式新增其他功能,又不想更動原本函式時,Python提供了一種強大而靈活的工具,那就是裝飾器。 但對於新手來說這個裝飾器,非常抽象難以理解,讓我們繼續往下看,慢慢的抽絲剝繭吧。 在 Python 中,使用「@」當做裝飾器使用的語法糖符號
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
大小寫轉換 空白處理 搜尋和替換字串 分割和連接 判斷字串特性 對齊
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
本章節是一個初級的 TypeScript 教學,主要介紹了 TypeScript 中物件導向程式設計的各種核心概念,包括類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等。每個概念都通過詳細的解釋和實例代碼來進行深入的介紹。
ITS python認證內容含蓋六大主題
Thumbnail
這一節談的是用物件導向程式設計(object-oriented programming, OOP)的方式來實作隨機漫步。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
NumPy(Numeric Python)是Python中用於科學計算的核心庫之一。它提供了高性能的多維陣列對象(即ndarray)以及用於處理這些陣列的各種函數和工具。 在NumPy中,有幾個常用的指令可以用來創建陣列
Thumbnail
讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢? 可以使用fallback 參數來指定預設值。 這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。 讓我們來假設一個案例做說明: 先故意將先前範例的port的資料刪掉。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
當你想讓原本函式新增其他功能,又不想更動原本函式時,Python提供了一種強大而靈活的工具,那就是裝飾器。 但對於新手來說這個裝飾器,非常抽象難以理解,讓我們繼續往下看,慢慢的抽絲剝繭吧。 在 Python 中,使用「@」當做裝飾器使用的語法糖符號