小白學Python的第十六堂課

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

在第十六課中,我們將繼續深入探討物件導向程式設計 (OOP) 的進階主題,尤其是 Python 中的特殊方法、屬性和繼承的進階概念。

請新建一個檔案 oop_advanced.py

  1. 特殊方法 (Magic/Dunder methods): 這些方法在名稱的前後都有雙底線,如 __init____str__。它們有特定的用途,並且允許你定義物件的某些內建行為。
pythonCopy code
class Book:
def __init__(self, title, author):
self.title = title
self.author = author

def __str__(self):
return f"'{self.title}' by {self.author}"

def __len__(self):
return len(self.title) + len(self.author)

book = Book("1984", "George Orwell")
print(book) # 輸出: '1984' by George Orwell
print(len(book)) # 輸出: 數字 (書名和作者名稱的長度之和)
  1. 屬性 (Property): @property 裝飾器允許你在不調用函數的情況下獲取物件的某個值。
pythonCopy code
class Circle:
def __init__(self, radius):
self._radius = radius

@property
def diameter(self):
return self._radius * 2

circle = Circle(5)
print(circle.diameter) # 輸出: 10 (而不是 circle.diameter())
  1. 超類的初始化 (super()): 當你在一個子類中想要調用其超類的初始化方法時,可以使用 super() 函數。
pythonCopy code
class Animal:
def __init__(self, species):
self.species = species

class Dog(Animal):
def __init__(self, name):
super().__init__("Dog")
self.name = name

dog = Dog("Buddy")
print(dog.species) # 輸出: Dog
  1. 多重繼承: Python 允許一個類從多個父類中繼承。這是一個強大但需要謹慎使用的功能。
pythonCopy code
class Swimmer:
def swim(self):
print("I can swim!")

class Flyer:
def fly(self):
print("I can fly!")

class Duck(Swimmer, Flyer):
pass

duck = Duck()
duck.swim() # 輸出: I can swim!
duck.fly() # 輸出: I can fly!

請在 oop_advanced.py 中輸入並運行上述代碼片段。這些進階的 OOP 概念將為你在 Python 中的編程提供更多的靈活性和表達力

留言
avatar-img
留言分享你的想法!
avatar-img
Hack_Z的沙龍
35會員
28內容數
我學習Python的紀錄
Hack_Z的沙龍的其他內容
2023/09/04
在這一課中,我們將學習如何在Python中使用beautifulsoup4和requests模塊進行基本的網頁爬蟲。 首先,你需要安裝beautifulsoup4模塊,如果你還沒有安裝它的話:
Thumbnail
2023/09/04
在這一課中,我們將學習如何在Python中使用beautifulsoup4和requests模塊進行基本的網頁爬蟲。 首先,你需要安裝beautifulsoup4模塊,如果你還沒有安裝它的話:
Thumbnail
2023/09/01
在這一課中,我們將學習如何在Python中使用sqlite3模塊進行基本的資料庫操作。 創建資料庫和表 首先,我們需要創建一個資料庫和一個表。
Thumbnail
2023/09/01
在這一課中,我們將學習如何在Python中使用sqlite3模塊進行基本的資料庫操作。 創建資料庫和表 首先,我們需要創建一個資料庫和一個表。
Thumbnail
2023/08/31
在這一課中,我們將學習如何在Python中使用requests模塊發送HTTP請求。 發送GET請求requests.get() 函數用於發送GET請求。
Thumbnail
2023/08/31
在這一課中,我們將學習如何在Python中使用requests模塊發送HTTP請求。 發送GET請求requests.get() 函數用於發送GET請求。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
JavaScript Object 基礎操作筆記
Thumbnail
JavaScript Object 基礎操作筆記
Thumbnail
在第十六課中,我們將繼續深入探討物件導向程式設計 (OOP) 的進階主題,尤其是 Python 中的特殊方法、屬性和繼承的進階概念。 請新建一個檔案 oop_advanced.py。
Thumbnail
在第十六課中,我們將繼續深入探討物件導向程式設計 (OOP) 的進階主題,尤其是 Python 中的特殊方法、屬性和繼承的進階概念。 請新建一個檔案 oop_advanced.py。
Thumbnail
在第十五課中,我們將探索 Python 的基礎物件導向程式設計 (OOP) 概念。 物件導向程式設計是一種設計和組織程式碼的方法,它強調使用物件來表示資料和功能。
Thumbnail
在第十五課中,我們將探索 Python 的基礎物件導向程式設計 (OOP) 概念。 物件導向程式設計是一種設計和組織程式碼的方法,它強調使用物件來表示資料和功能。
Thumbnail
在第十一課中,我們將討論 Python 中的類別 (Classes) 和物件導向程式設計 (Object-Oriented Programming, OOP) 的概念。 物件導向程式設計是一種實現真實世界物件在程式中的模擬方式,這有助於更好地組織和管理程式碼。
Thumbnail
在第十一課中,我們將討論 Python 中的類別 (Classes) 和物件導向程式設計 (Object-Oriented Programming, OOP) 的概念。 物件導向程式設計是一種實現真實世界物件在程式中的模擬方式,這有助於更好地組織和管理程式碼。
Thumbnail
Hi, 大家好,我是茶桁。 上一节课中,我们讲解了面向对象中的一些高阶应用,给大家介绍了一些魔术方法。并在最后,我们预告这节课内容会讲解描述符和设计模式。 好了,让我们开始吧。 描述符 这个玩意,怎么讲合适呢?这么说吧,当某一个类中,包含了三个魔术方法(__get__, __set__, _
Thumbnail
Hi, 大家好,我是茶桁。 上一节课中,我们讲解了面向对象中的一些高阶应用,给大家介绍了一些魔术方法。并在最后,我们预告这节课内容会讲解描述符和设计模式。 好了,让我们开始吧。 描述符 这个玩意,怎么讲合适呢?这么说吧,当某一个类中,包含了三个魔术方法(__get__, __set__, _
Thumbnail
之前的课程里面,我们简单的接触了面向对象编程,也和大家讲解了其思想,优缺点。相信上节课程结束之后,大家对面向对象都有了一定的理解。 那么我们这节课,就进入面向对象的一些高阶部分,让我们继续来学习一些魔术方法以及Python的内置成员,然后再来学习一下描述符与设计模式。
Thumbnail
之前的课程里面,我们简单的接触了面向对象编程,也和大家讲解了其思想,优缺点。相信上节课程结束之后,大家对面向对象都有了一定的理解。 那么我们这节课,就进入面向对象的一些高阶部分,让我们继续来学习一些魔术方法以及Python的内置成员,然后再来学习一下描述符与设计模式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News