Pythonのクラスと継承を学びます。オブジェクト指向プログラミング(OOP)の考え方を理解すれば、大規模なプログラムも整理して書けるようになります。
クラスの基本
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
return f"{self.name}がワンと鳴いた!"
def __str__(self):
return f"犬の名前: {self.name}, 犬種: {self.breed}"
# インスタンスの作成
my_dog = Dog("ポチ", "柴犬")
print(my_dog.bark()) # ポチがワンと鳴いた!
print(my_dog) # 犬の名前: ポチ, 犬種: 柴犬継承
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
return "...(無音)"
class Dog(Animal): # Animalを継承
def speak(self): # オーバーライド
return f"{self.name}: ワン!"
class Cat(Animal):
def speak(self):
return f"{self.name}: ニャー!"
animals = [Dog("ポチ"), Cat("タマ")]
for a in animals:
print(a.speak())OOPの主要概念
| 概念 | 説明 |
|---|---|
| クラス | オブジェクトの設計図 |
| インスタンス | クラスから生成した実体 |
| __init__ | コンストラクタ(インスタンス生成時に呼ばれる) |
| self | インスタンス自身を参照する変数 |
| 継承 | 親クラスの機能を引き継ぐ仕組み |
| オーバーライド | 親クラスのメソッドを子クラスで再定義する |
まとめ
- classキーワードでクラスを定義し、__init__で初期化する
- selfはインスタンス自身を指す(必ず第1引数に書く)
- 継承で親クラスの機能を使い回せる
- __str__を定義するとprint()で見やすい出力ができる



コメント