第三周 Day 4
🎯 今日目標
- 理解類的繼承和方法重寫
- 掌握多態思想及其實際應用
- 了解并使用常見的魔術方法(如 str、len 等)
🧬 類的繼承(Inheritance)
Python 支持單繼承與多繼承,常用語法如下:
class 子類名(父類名):...
? 示例:定義一個繼承自 Person 的 Student 類
class Person:def __init__(self, name):self.name = namedef introduce(self):print(f"我是 {self.name}")class Student(Person):def __init__(self, name, school):super().__init__(name)self.school = schooldef introduce(self):print(f"我是學生 {self.name},來自 {self.school}")
p = Person("李雷")
p.introduce()s = Student("韓梅梅", "清華大學")
s.introduce()
🌀 多態(Polymorphism)
多態強調:“一種接口,多種實現”
class Animal:def speak(self):print("動物在叫")class Dog(Animal):def speak(self):print("狗在汪汪叫")class Cat(Animal):def speak(self):print("貓在喵喵叫")def make_sound(animal):animal.speak()make_sound(Dog()) # 狗在汪汪叫
make_sound(Cat()) # 貓在喵喵叫
🎯 多態的優勢在于:無需關心對象具體類型,只關心它是否有該方法。
? 魔術方法(Magic Methods)
魔術方法是 Python 中以雙下劃線開頭和結尾的特殊方法,用于自定義類的行為。
方法名 | 用途 |
---|---|
init | 構造函數 |
str | 字符串顯示 |
len | 返回長度 |
eq | 等于比較 |
? 示例:自定義打印格式
class Book:def __init__(self, title):self.title = titledef __str__(self):return f"《{self.title}》"
b = Book("流浪地球")
print(b) # 輸出:《流浪地球》
🧪 今日練習任務
? 練習1:定義 Employee 父類,Manager 子類,重寫介紹方法
class Employee:def __init__(self, name):self.name = namedef work(self):print(f"{self.name} 正在工作")class Manager(Employee):def work(self):print(f"{self.name} 正在管理團隊")m = Manager("Alice")
m.work()
? 練習2:定義一個 Team 類,使用 len 和 str 魔術方法
class Team:def __init__(self, members):self.members = membersdef __len__(self):return len(self.members)def __str__(self):return f"團隊成員有:{', '.join(self.members)}"t = Team(["張三", "李四", "王五"])
print(len(t)) # 3
print(str(t)) # 團隊成員有:張三, 李四, 王五
? 練習3:模擬一個寵物樂園,定義父類 Pet,子類 Dog 和 Cat,并在統一函數中調用各自的 sound() 方法(體現多態)
class Pet:def sound(self):passclass Dog(Pet):def sound(self):print("汪汪!")class Cat(Pet):def sound(self):print("喵喵~")def pet_speak(pet):pet.sound()pet_speak(Dog())
pet_speak(Cat())
🧾 今日總結
核心概念 | 說明 |
---|---|
繼承 | 子類可以繼承父類的屬性和方法 |
方法重寫 | 子類可以覆蓋父類中的方法 |
多態 | 同一個接口,傳入不同對象呈現不同行為 |
魔術方法 | Python 內置的特殊函數,用于定制對象表現 |