桶屋ブログ

風が吹いても儲からないSE(仮)のブログ

Pythonでオブジェクト指向を知りたい

オブジェクト指向とは何なのか。それは、作法。と悟りを開きつつあります。

カプセル化 - encapsulation(クラス)

class Example_class: # クラス
  _mem_var = "This is python's private style" # 外部参照不可
  def example_method(self):
    print("it's over!")

ようはクラスでネスト(くくれ)って話なんだろ?
もちろん再利用云々もあるんだけど、元々はそれよりも"グローバル撲滅キャンペーン"の色が強かったらしい。まあ今は"再利用"自体が営業のバズワードっぽいけどね。
_付きはprivateとして扱え!という習慣です。基本的にPythonでは秘匿化を実装する予定はありません。ともかく蓋をしてしまうのもカプセル化なのです。

ポリモーフィズム - Polymorphism(多用性)

class Example_base:
  word = ""
  def oprint(self):
    print(self.word)

class Example_A(Example_base):
  word = "継承とは"
class Example_B(Example_base):
  word = "ちょっと違う"

def main():
  Example_A().oprint() # 継承とは
  Example_B().oprint() # ちょっと違う

なんかぁ、部品の共通化でぇ、どれでやっても一緒じゃん?みたいなことが言いたいらしい…感じ?
型でメソッドの動作が違うとかも該当するらしいんだけど、型…ねぇ…。
そもそも+や*がポリモーフィズムなんだと。確かに!…これ自分で実装するのがポリモーフィズムなのか?
と???が頭から消えないがそんなに重要でもないような(放棄)

継承 - inheritance

class A:
  pass
class A_plus(A):
  pass

例を作るの飽きました。
共通化できるところはしていきたいと思っていますが、ワンオフしか書いてないのであんまりしないっすね継承。

というわけで全く参考にならないエントリーでした…。