プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【Python連載】クラス-020-

www.pon-x.jp

今回は前回までの続き、クラスを紹介します。

クラス

クラスはプログラミング初学者にとてもつまづきやすいポイントになりますが、これを知っておくとそうでないとでは実際にプロダクト制作をするときにえらくかわってくるので、しっかり理解しましょう。
※ クラスは今回から数回に分けて説明します。

ストーリーをつくってみました。

クラスの必要性を理解していただくために、以下のようなストーリーを作ってみました。

以下はゲームのキャラクターを作るという目的でクラスを作っていきます。 ひとつひとつ、順を追って理解していきましょう。

# Characterという名前のクラスを作ります。 
# まずは、クラス内で何も処理をしません。

class Character:
    pass

f:id:hanabusa-snow:20211111083944p:plain
これを実行しただけでは何も起きません。

このクラスはテンプレートを作ったに過ぎないので、これを実態化するためのインスタンスを作ります。

# 変数yusyaとkenjaにそれぞれインスタンスを作成してみましょう。
yusya = Character()
kenja = Character()

f:id:hanabusa-snow:20211111084138p:plain
これで勇者と賢者のインスタンスができましたが、表示は何もありません。

クラス内の変数をアトリビュートなんて呼んだりもしますが、それぞれのインスタンスにアトリビュートを設定してあげましょう。

yusya.job = "勇者"
yusya.HP = 100
yusya.weapon = "はがねの剣"

kenja.job = "賢者"
kenja.HP = 70
kenja.weapon = "魔法の杖"

f:id:hanabusa-snow:20211111084331p:plain 設定しただけなので、これも何も表示がありません。

表示してみます。

# 表示してみましょう。

print("---------------")
print(yusya.job)
print(yusya.HP)
print(yusya.weapon)
print("---------------")
print(kenja.job)
print(kenja.HP)
print(kenja.weapon)
print("---------------")

先ほど設定した値が表示されました。
f:id:hanabusa-snow:20211111084418p:plain

このように、インスタンスごとにパラメータを保持することができるのがクラスの利点のひとつです。
次回以降もうちょっと掘り下げてみようと思います。