【Python入門】クラス①

Python

1.クラス(class)とは?

クラスとは、オブジェクト(物・キャラクター・データ)の設計図 です。
オブジェクトとはクラスから作られる “実体(インスタンス)” のことです。

2.クラスの最小形

class Person:
    pass

pass は「何もしない」の意味。

3.インスタンス(実体)を作る

p = Person()

Person() を呼ぶと「Person のインスタンス」ができます。

4.クラスに属性(データ)を持たせる:init

クラスで一番重要なのが init(コンストラクタ) です。
インスタンスが作られた時に自動で実行されます。

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

p = Person("Alice", 20)
print(p.name)
print(p.age)

self.xxx = xxx は「インスタンス自身のデータ」を作って保存しているという意味です。

5.メソッド(クラスに所属する関数)

インスタンスの動き=クラスに所属する関数=メソッドを定義します。
このクラスは何ができますか?ということを関数で定義。

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

    def hello(self):
        print(f"こんにちは、{self.name} さん")

p = Person("Bob")
p.hello()

※ クラスの中の関数は第一引数に self が必須(インスタンス自身を表す)

6.クラスと「設計図 → オブジェクト」の関係

例えば「犬」というクラスは「名前、年齢」といった属性を持ち、「吠える」という動作メソッドができる。これを具体的に「ポチ、5歳」などの犬にすることをインスタンスという。

7.クラスの応用:継承(inheritance)

あるクラスの機能を別のクラスに引き継ぐ 仕組みです。

✔ 親クラス(基底クラス)

class Animal:
    def sound(self):
        print("何かが鳴いている")

✔ 子クラス(Animal を継承)

class Dog(Animal):
    def sound(self):
        print("ワンワン!")

d = Dog()
d.sound()  # ワンワン!
  • Dog は Animal の機能を持っている
  • 自分で上書き(オーバーライド)もできる

8.まとめて動く実例

車のクラスを作ってみる。
車の属性は「色」と「スピード」にする。
車の動作は「アクセル(accelerate)」と「ブレーキ(brake)」にする。
「アクセル(accelerate)」は加速する速度を入力することで、もともとのスピードに加算される。「ブレーキ(brake)」はスピードを完全に0にする。

class Car:
    def __init__(self, color, speed=0):
        self.color = color
        self.speed = speed

    def accelerate(self, amount):
        self.speed += amount
        print(f"現在の速度: {self.speed}")

    def brake(self):
        self.speed = 0
        print("停止しました")

# インスタンスを作る
my_car = Car("red")
my_car.accelerate(30)
my_car.brake()

タイトルとURLをコピーしました