恭喜你

Python 物件導向程式設計入門

George Boorman

Curriculum Manager, DataCamp

類別與物件

術語 定義
類別 建立物件的藍圖/範本
物件 _資料_與_功能_的組合;類別的實例
Python 物件導向程式設計入門

屬性與方法

術語 定義
類別 建立物件的藍圖/範本
物件 _資料_與_功能_的組合;類別的實例
狀態 與物件關聯的_資料_,透過屬性指定
行為 物件的_功能_,透過方法定義
Python 物件導向程式設計入門

核心概念

封裝

  • 將資料與方法綁在一起

繼承

  • 擴充現有程式碼的功能

多型

  • 建立統一介面
Python 物件導向程式設計入門

比較運算

運算子 方法
== __eq__()
!= __ne__()
>= __ge__()
<= __le__()
> __gt__()
< __lt__()
Python 物件導向程式設計入門

字串表示

__str__()

  • print(obj), str(obj)
print([1,2,3])
[1 2 3]
str([1,2,3])
'[1, 2, 3]' 
  • 非正式,給終端使用者
  • string 表示法

__repr__()

  • repr(obj),在主控台列印
repr([1,2,3])
[1,2,3]
[1,2,3]
[1,2,3]
  • 正式,給開發者
  • reproduce 的 representation
  • print() 後援
Python 物件導向程式設計入門

錯誤處理

class BalanceError(Exception): 
    pass

class Customer: def __init__(self, name, balance): if balance < 0 : raise BalanceError("Balance has to be non-negative!") else: self.name, self.balance = name, balance
# 使用 try-except 捕捉錯誤 try: cust = Customer("Larry Torres", -100) except BalanceError: cust = Customer("Larry Torres", 0)
Python 物件導向程式設計入門

接下來呢?

  • 多重繼承
  • 描述器
  • 自訂屬性
  • 自訂疊代器
  • 型別註解
  • 抽象基底類別
Python 物件導向程式設計入門

一起來練習吧!

Python 物件導向程式設計入門

Preparing Video For Download...