クラス

INPUT · スライド

設計図を書いて実物を作る

01 / 07

「会員とはこれだ」と書く場所がほしい

前のレッスンで困ったのは、辞書が自由すぎることだった。項目を入れ忘れても誰も怒ってくれないし、「会員とは何か」がどこにも書いていない。

それを一か所に宣言しておく仕組みがクラス。設計図を1つ書いておくと思えばいいよ。

02 / 07

class と書く

class のうしろに名前を書き、行の終わりを : で閉じる。次の行からスペース4つ下げて中身を書くよ。if や def と同じ形だね。

中身はこれから足していくけれど、Python では中を空っぽのままにできない。なにもしないと伝える pass(パス)を1行だけ置いておこう。

class Kaiin:    passprint("せっけいずができた")

実行結果

せっけいずができた

03 / 07

名前は大文字で始める

クラスの名前は大文字始まりにするのが Python の慣習だよ。kaiin は入れ物の変数、Kaiin は設計図、と見た目で区別できるようにするためだね。

名前は「1個ぶんの呼び名」にする。会員の集まりを扱う設計図でも Kaiins ではなく Kaiin だよ。

class Kaiin:    passclass Shohin:    passprint("せっけいずが2つ")

実行結果

せっけいずが2つ

04 / 07

設計図から実物を作る

たい焼きの型をいくらながめても、たい焼きは出てこない。設計図を書いただけでは、中身のあるデータは1つも生まれないんだ。

実物を作るには、クラス名のうしろに () をつけて呼ぶ。こうしてできた実物のことをインスタンスと呼ぶよ。

class Kaiin:    passkaiin = Kaiin()kaiin.namae = "あおい"print(kaiin.namae)

実行結果

あおい

05 / 07

値の出し入れはドットで

インスタンスが持っている値のことを属性(ぞくせい)と呼ぶよ。読み書きはどちらも インスタンス.名前 の形。

辞書の kaiin["namae"] に当たるものが、クラスでは kaiin.namae。カギカッコもクォートも要らないぶん、読みやすいね。

class Kaiin:    passkaiin = Kaiin()kaiin.namae = "あおい"kaiin.nensuu = 3print(kaiin.namae)print(kaiin.nensuu)

実行結果

あおい
3

06 / 07

1つの設計図から何個でも

同じクラスから作ったインスタンスどうしは、別々の入れ物だよ。片方の属性を変えても、もう片方はそのまま。

たい焼きの型は1つでも、焼き上がったたい焼きは別々、というのと同じ感覚だね。

class Kaiin:    passa = Kaiin()a.namae = "あおい"b = Kaiin()b.namae = "ひなた"print(a.namae)print(b.namae)

実行結果

あおい
ひなた

07 / 07

まだ手で入れている

いまは Kaiin() で作ったあとに .namae = ... を自分で書いている。項目が5つあれば5行、会員が10人いれば50行だよね。

しかも書き忘れても止めてもらえないので、辞書のときと困りぐあいが変わっていない。作ると同時に中身を用意する仕組みが、次のレッスンで出てくるよ。