本文へスキップ
BecomeCoder

Pythonコース · 第6章 クラスとモジュール ― 仕上げ · レッスン23

クラスの基礎 ― データと処理をまとめる

ブラウザで完結

導入

クラスは「データ(属性)」と「そのデータを扱う処理(メソッド)」をひとまとめにした設計図です。設計図から作った実体を**インスタンス(オブジェクト)**と呼びます。

説明

class で定義します。__init__ はインスタンスを作るときに呼ばれる特別なメソッドで、self を通して属性を用意します。

class Dog:
    def __init__(self, name, age):
        self.name = name       # 属性を用意
        self.age = age
    def bark(self):            # メソッド(self が自分自身)
        return f"{self.name}: ワン!"

pochi = Dog("ポチ", 3)          # インスタンスを作る
print(pochi.name)              # ポチ(属性を参照)
print(pochi.bark())            # ポチ: ワン!(メソッドを呼ぶ)

self は「そのインスタンス自身」を指します。メソッドの中では self.属性 で自分のデータにアクセスします。同じクラス(設計図)から、別々のデータを持つインスタンス(実体)をいくつも作れます。

flowchart TB
  cls["設計図 class Dog<br/>属性: name, age / メソッド: bark()"]
  cls -->|"Dog(シロ, 5)"| a["インスタンス a<br/>name=シロ"]
  cls -->|"Dog(クロ, 1)"| b["インスタンス b<br/>name=クロ"]
a = Dog("シロ", 5)
b = Dog("クロ", 1)
print(a.bark())
print(b.bark())

やってみよう

Dog のインスタンスを増やしたり、bark の返す文を変えたりして、動きを確かめましょう。

演習

nameprice を属性に持つクラス Item を定義し、info メソッドで 商品名: りんご / 150円 の形の文字列を返すようにして、Item("りんご", 150).info() を表示してください。

ヒント1を見る

__init__(self, name, price) で属性を作り、def info(self): return f"商品名: {self.name} / {self.price}円"

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、ブラウザ内のPythonで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(input() を使う回は「標準入力」欄に値を入れてから実行します)。

Python — ブラウザ内で実行

ブラウザ内でPythonを動かす環境(Skulpt)を読み込みます(初回のみ少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。