継承とはコードを共通化することです。 コードを共通化することの危険性を動画にして、大変わかりやすく記載されています。 以下の動画の「共通モジュール」を親クラスに読み換えると雰囲気が掴みやすいかなと思います。 「同じロジックのコードを2度以上書くな」と妄信する (opens new window) 同じようなパターンがプログラムの複数箇所に現れる場合、 それらを抽象化して一つの共通ロジックへのパラメータ渡しとして実装し、 それを複数箇所から呼び出すように実装すると、 プログラムコード量が小さくなり、 保守性が良くなったような気がするので、 未熟なプログラマが、なんでもかんでも共通ルーチン化しまくって、 非常に保守性の悪いプログラムにしてしまうことがある。 いつ継承で いつ合成を使うのか (とても、ざっくり) 内容継承合成
class A: def __init__(self, var_a, var_b): self.var_a = var_a # 実際にはvar_cと値も役割も同じかもしれない self.var_b = var_b # 実際にはvar_dと値も役割も同じかもしれない # クラスBの属性は参照できない! def method_A(self): ... class B: def __init__(self, var_c, var_d): self.var_c = var_c self.var_d = var_d # クラスAの属性をクラスB内で使いたいときには、以下のようにクラスAのインスタンスをB内で生成する。 self.inst_a = A(var_c, var_d) # クラスAの属性は参照できる print(self.inst_a.var_a) print(self.inst_a.var
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く