Contents
クラス
① クラスとは?
一言でいうと、「データ」と「そのデータを扱う関数」をひとまとめにした設計図です。
たとえ話をすると:
関数:道具
クラス:道具箱+中身の使い方
② いちばん基本的なクラス
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 は自分自身
メソッドはクラス専用関数
継承で機能再利用
型ヒントは「宣言」ではなく「説明」


コメント