首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 自定義類別與物件導向程式設計實戰

     編輯:更多程式設計知識

Python 的類別機制支援封裝、繼承與多型,是物件導向程式設計的核心。本文透過一個 Person 類別範例,示範如何定義類別、建構子、實例方法、字串表示以及屬性操作,幫助初學者快速掌握類別設計要點。

類別定義

Person 類別包含四個屬性:名字、中間名、姓氏與年齡。建構子 __init__ 初始化這些屬性;__str__ 定義物件的字串表示;initials 回傳姓名縮寫;changeAge 修改年齡。

class Person:
    def __init__(self, first, middle, last, age):
        self.first = first
        self.middle = middle
        self.last = last
        self.age = age

    def __str__(self):
        return f"{self.first} {self.middle} {self.last} {self.age}"

    def initials(self):
        return self.first[0] + self.middle[0] + self.last[0]

    def changeAge(self, val):
        self.age += val

建立物件與呼叫方法

實例化物件後,可直接呼叫方法或存取屬性:

myPerson = Person('Raja', 'I', 'Kumar', 21)
print(myPerson)           # 輸出: Raja I Kumar 21
myPerson.changeAge(5)
print(myPerson)           # 輸出: Raja I Kumar 26
print(myPerson.initials()) # 輸出: RIK

關鍵概念解析

  • self:代表實例本身,所有實例方法第一個參數均為 self。
  • __init__:建構子,在物件建立時自動呼叫。
  • __str__:定義 print() 或 str() 的行為,回傳字串。
  • 實例方法:透過 self 存取或修改實例屬性。

進階延伸

實務上常加入型別提示、屬性驗證、@property 裝飾器等,提升程式碼健壯性。例如:

class Person:
    def __init__(self, first: str, middle: str, last: str, age: int):
        self.first = first
        self.middle = middle
        self.last = last
        self._age = age  # 受保護屬性

    @property
    def age(self):
        return self._age

    @age.setter
    def age(self, value):
        if value < 0:
            raise ValueError("年齡不能為負數")
        self._age = value
    # ... 其他方法同前

掌握類別設計是開發大型 Python 專案的基礎,建議多練習封裝業務邏輯於類別中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved