Diagonal M

データサイエンス系長期インターンで学んだことなど

【Python】オブジェクト指向プログラミング vol.3 ~クラスの定義方法~

Pythonオブジェクト指向の勉強の続きです。

前回のまとめ

  • クラスとは管理対象となる情報と振る舞いを定義したテンプレートのこと
  • インスタンスは、クラスの情報をすべて受け継いで生成されたオブジェクトのこと

クラスの定義方法

前回のテンプレートに該当するものがクラスです。クラスの定義方法は以下のとおりです。

classキーワードを使い、その右にクラス名を記述し、右にコロン(:)をつけます。慣例として最初の文字は大文字にします。

class Player:
    def __init__(self):
        self.name = name
        self.team = team
        self.position = position
        self.attack = attack
        self.special = special
        self.heart = heart
        self.technique = technique
        self.defense = defense

c = Player()
c.name = 'クリステファン・ローディ'
c.team = 'R・マドリード'
c.position = 'FW'
c.attack= 409
c.special = 391
c.heart = 310
c.technique = 395
c.defense = 193

print('ポジション:',c.position)
print('所属チーム:{}, 名前:{}'.format(c.team, c.name))

変数をPlayerクラスに8個作りました。

このテンプレートをもとにPlayer型のオブジェクトを作ります。クラスからオブジェクトを作る構文は、「クラス名()」です。

Player()がクラスからオブジェクトを作る構文になります。こうすることで、同じテンプレートから異なるPlayer型オブジェクトを作成できます。

上のコードを実行すると以下のような結果が返ってきます。

ポジション: FW
所属チーム:R・マドリード, 名前:クリステファン・ローディ

オブジェクトの変数にアクセスするには、ドット(.)を使います。c.namec.defenceのように書けます。

今回クラスにデータを持たせる際にdef __init__内に定義しました。上のコードではdef __init__がなくても同じ結果を返してくれます。

次回__init__(コンストラクタ)についてまとめます。