Python によるオブジェクト指向プログラミング
Alex Yarosh
Content Quality Analyst @ DataCamp



$$\Large{\text{新しいクラスの機能 = 既存クラスの機能 + 追加要素}}$$




class BankAccount:
def __init__(self, balance):
self.balance = balance
def withdraw(self, amount):
self.balance -= amount
# BankAccount を継承した空のクラス
class SavingsAccount(BankAccount):
pass
class MyChild(MyParent):
# Do stuff here
MyParent: 機能を提供(継承元)MyChild: 機能を受け継ぎ、拡張するクラス# BankAccount からコンストラクタを継承
savings_acct = SavingsAccount(1000)
type(savings_acct)
__main__.SavingsAccount
# BankAccount の属性を継承
savings_acct.balance
1000
# BankAccount のメソッドを継承
savings_acct.withdraw(300)
SavingsAccount は BankAccount である
(必要に応じて機能追加)
savings_acct = SavingsAccount(1000)
isinstance(savings_acct, SavingsAccount)
True
isinstance(savings_acct, BankAccount)
True
acct = BankAccount(500)
isinstance(acct,SavingsAccount)
False
isinstance(acct,BankAccount)
True
Python によるオブジェクト指向プログラミング