第12章 クラス

クラス

① クラスとは?

一言でいうと、「データ」と「そのデータを扱う関数」をひとまとめにした設計図です。

たとえ話をすると:
関数:道具
クラス:道具箱+中身の使い方

② いちばん基本的なクラス

class Person:
pass

これだけでもクラスです。

使うと:
p = Person()

③ 属性(データ)を持たせる

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("田村", 40)
print(p.name)
print(p.age)

ポイント

__init__ → 初期化処理

self → 「このオブジェクト自身」

④ メソッド(関数)を追加する

class Person:
    def __init__(self, name):
        self.name = namedef greet(self):
    print(f"こんにちは、{self.name}です")

p = Person("田村")
p.greet()

👉 関数と違い、必ず self が先頭

⑤ クラスの役割をひとことで

関連する変数をまとめる

操作方法を一緒に定義

状態を持てる(←関数との最大の違い)

⑥ クラスの機能を引き継ぐ(継承)

class Animal:
    def speak(self):
        print("鳴く")class Dog(Animal):
            def speak(self):
    print("ワン")


d = Dog()
d.speak()

ポイント

Dog(Animal) → Animal を継承

親クラスの機能を再利用

上書き(オーバーライド)可能

親のメソッドを呼びたい場合

class Dog(Animal):
    def speak(self):
super().speak()
print("ワン")

⑦ Pythonで型を宣言する(型ヒント)

Pythonは動的型ですが、型ヒントは書けます。

def add(a: int, b: int) -> int:
    return a + b

クラスでも:

class Person:
    def __init__(self, name: str, age: int):
        self.name: str = name
    self.age: int = age

👉 実行時の強制ではない
👉 補助情報(VS Codeが賢くなる)

⑧ よく使う型ヒント

from typing import List, Dict, Optional

names: List[str] = ["A", "B"]
scores: Dict[str, int] = {"A": 90}
age: Optional[int] = None

⑨ クラスはいつ使う?

使うと良い場面:
状態(値)を持つ
操作がセットになっている
似たものが複数ある

例:
信号波形(振幅・周波数+FFT)
GUI部品
ファイル操作オブジェクト。

まとめ(これだけ覚えればOK)

クラス = データ+処理のまとまり
__init__ で初期化
self は自分自身
メソッドはクラス専用関数
継承で機能再利用
型ヒントは「宣言」ではなく「説明」

コメント