おめでとうございます

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]
  • 公式。開発者向け
  • reproducible な 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
# Use try-except to catch errors try: cust = Customer("Larry Torres", -100) except BalanceError: cust = Customer("Larry Torres", 0)
Pythonによるオブジェクト指向プログラミング入門

次のステップ

  • 多重継承
  • デスクリプタ
  • カスタム属性
  • カスタムイテレータ
  • 型ヒント
  • 抽象基底クラス
Pythonによるオブジェクト指向プログラミング入門

練習しましょう!

Pythonによるオブジェクト指向プログラミング入門

Preparing Video For Download...