【Pythonクラス爆速理解!!】「BE:FIRST」のメンバーのプロフィール(名前・出身地・身長)でクラスを学習

この記事は、Pythonでクラスの学習中の方で、7人組ダンスボーカルのボーイズグループ「BE:FIRST」を知っている(聞いたことがある〜大ファンまでの)方を対象としています。
また、ループの内包表記についても触れています。

クラス・・・設計図
オブジェクト・・・クラスという設計図から作った具体的な製品

に例えられることが多いです。
そこで、ここでは、

BE:FIRSTという設計図から、「SOTA(ソウタ)・SHUNTO(シュント)・MANATO(マナト)・RYUHEI(リュウヘイ)・JUNON(ジュノン)・RYOKI(リョウキ)・LEO(レオ)」といった具体的なメンバーであるオブジェクトを作成するという考え方でクラスについて学んでいきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

まず、クラスのコードの説明をします。
initは、最初に自動的に呼ばれるメソッド(関数)で、引数のselfとは、SOTAさん、SHUNTOさん、MANATOさん、RYUHEIさん、JUNONさん、RYOKIさん、LEOさんといった、具体的なメンバー自身のことです。

initが呼ばれた後に、profile (プロフィール)というメソッドが呼び出され、ここで各メンバーの名前・出身地・身長の紹介が出力されます。
profileメソッドの身長は数値なのでstrで括っています。
また、結果が見やすいように【 】で括っています。

class Befirst:
    def __init__(self,name,place,height):
        self.name=name
        self.place=place
        self.height=height

    def profile(self):
        print("【"+self.name+"】さんは【"+self.place+"】出身で身長は【"+str(self.height)+"】cmです。")

次に、各メンバーを格納するリストと、クラスBE:FIRSTからインスタンス化(実例化)して作られたオブジェクト(SOTAさん、SHUNTOさん、MANATOさん、RYUHEIさん、JUNONさん、RYOKIさん、LEOさん)をリストにappendを使って追加するコードです。
ここでは、memberというリストに追加しています

#メンバーのリストを作成
member=[]

#インスタンス化して作ったオブジェクトをリストに追加
member.append(Befirst("池亀樹音","東京都 ",183))
member.append(Befirst("上村礼王","埼玉県 ",179))
member.append(Befirst("三山凌輝","愛知県 ",177))
member.append(Befirst("島雄壮大","神奈川県",174))
member.append(Befirst("廣瀬真人","福岡県 ",173))
member.append(Befirst("久保舜斗","愛知県 ",174))
member.append(Befirst("黒田竜平","愛知県 ",180))

リストをループで取り出して、プロフィールメソッドを呼び出すコードです。

#ループでプロフィールメソッドを呼び出す
for man in member:
    man.profile()

この部分を内包表記で書くと、

#ループで同様の処理を内包表記で書く処理
[man.profile() for man in member]

このように1行で書けます。

出力結果とここまでの全てのコードです。

class Befirst:
    def __init__(self,name,place,height):
        self.name=name
        self.place=place
        self.height=height

    def profile(self):
        print("【"+self.name+"】さんは【"+self.place+"】出身で身長は【"+str(self.height)+"】cmです。")


#メンバーのリストを作成
member=[]

#インスタンス化して作ったオブジェクトをリストに追加
member.append(Befirst("池亀樹音","東京都 ",183))
member.append(Befirst("上村礼王","埼玉県 ",179))
member.append(Befirst("三山凌輝","愛知県 ",177))
member.append(Befirst("島雄壮大","神奈川県",174))
member.append(Befirst("廣瀬真人","福岡県 ",173))
member.append(Befirst("久保舜斗","愛知県 ",174))
member.append(Befirst("黒田竜平","愛知県 ",180))

#ループでプロフィールメソッドを呼び出す
for man in member:
    man.profile()

#ループで同様の処理を内包表記で書く処理
[man.profile() for man in member]

(ループはシンプルなコード、または内包表記のどちらかをコメントアウトしないと、2回出力されてしまいます。)

関連記事:【クラス爆速理解!!】昭和ギャグから学ぶクラスとインスタンス「月曜日はウンジャラゲ♪」
こちらでは、クラスの基本的な内容を「昭和な方向け」に書いております。

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

投稿者: nekosiestr

プログラミング学習中の発達障害者です。宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。