この記事は、Pythonでクラスの学習中の方で、9人組ダンスボーカルのガールズグループ「NiziU」を知っている(聞いたことがある〜大ファン(ファンの愛称がWithUという様です。))の方を対象としています。
また、内包表記についても触れています。
Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介
クラス:設計図
インスタンス:クラスという設計図から作られた具体的な製品
に例えられることが多いです。
そこで、ここでは、
設計図であるクラスNiziUは、「名前」・「担当カラー」を持つ設計図である。
この設計図から作られた具体的なメンバーの、
「名前:MAKO , 担当カラー:オレンジ」、
「名前:RIO , 担当カラー:スカイブルー」、
「名前:MAYA , 担当カラー:パープル」、
「名前:RIKU , 担当カラー:イエロー」、
「名前:AYAKA , 担当カラー:ホワイト」、
「名前:MAYUKA , 担当カラー:ライトグリーン」、
「名前:RIMA , 担当カラー:レッド」、
「名前:MIIHI , 担当カラー:ピンク」、
「名前:NINA , 担当カラー:ディープブルー」
といった、クラスから作られた、「具体的なメンバーと担当カラー」をインスタンスとします。
まず、クラスのコードの説明をします。
initは、最初に自動的に呼ばれるメソッド(関数のこと。クラスでは関数をメソッドと言います。)で、引数の「self」とは、MAKOさん、RIOさん、MAYAさん、RIKUさん、AYAKAさん、MAYUKAさん、RIMAさん、MIIHIさん、NINAさんといった、具体的なメンバー自身のことです。
initが呼ばれた後に、profile (プロフィール)というメソッドが呼び出され、ここで各メンバーの名前・担当カラーの紹介が出力されます。
class NiziU:
def __init__(self,name,color):
self.name=name
self.color=color
def profile(self):
print('名前:【'+self.name+('】担当カラー【'+self.color+'】です。'))
次に、各メンバーを格納するリストと、クラスNiziUからインスタンス化(実例化)した作られたオブジェクト(MAKOさん、RIOさん、MAYAさん、RIKUさん、AYAKAさん、MAYUKAさん、RIMAさん、MIIHIさん、NINAさん)をリストにappendを使って追加するコードです。
ここでは、memberというリストに追加しています
#メンバーリストの定義とインスタンス化
member=[]
member.append(NiziU('MAKO ','オレンジ '))
member.append(NiziU('RIO ','スカイブルー '))
member.append(NiziU('MAYA ','パープル '))
member.append(NiziU('RIKU ','イエロー '))
member.append(NiziU('AYAKA ','ホワイト '))
member.append(NiziU('MAYUKA','ライトグリーン'))
member.append(NiziU('RIMA ','レッド '))
member.append(NiziU('MIIHI ','ピンク '))
member.append(NiziU('NINA ','ディープブルー'))
リストをループで取り出して、プロフィールメソッドを呼び出すコードです。
#基本的なループでメソッドを呼び出す
for oshi in member:
oshi.profile()
この部分を内包表記で書くと、
#内包表記を使用
[oshi.profile() for oshi in member]
このように1行で書けます。
出力結果とここまでのコードです。
class NiziU:
def __init__(self,name,color):
self.name=name
self.color=color
def profile(self):
print('名前:【'+self.name+('】担当カラー【'+self.color+'】です。'))
#メンバーリストの定義とインスタンス化
member=[]
member.append(NiziU('MAKO ','オレンジ '))
member.append(NiziU('RIO ','スカイブルー '))
member.append(NiziU('MAYA ','パープル '))
member.append(NiziU('RIKU ','イエロー '))
member.append(NiziU('AYAKA ','ホワイト '))
member.append(NiziU('MAYUKA','ライトグリーン'))
member.append(NiziU('RIMA ','レッド '))
member.append(NiziU('MIIHI ','ピンク '))
member.append(NiziU('NINA ','ディープブルー'))
#基本的なループでメソッドを呼び出す
for oshi in member:
oshi.profile()
#内包表記を使用
[oshi.profile() for oshi in member]
最後までお読み頂きありがとにゃん(=^x^=)
お疲れ様でした。では、NiziUの歌で癒されてちゃって下さい!!
かわいいですね。癒されます。
クラスは中々習得が難しいので、練習の為に同様なインスタンス化を行いました。
関連記事:
【Pythonクラス爆速理解!!】昭和ギャグから学ぶクラスとインスタンス「月曜日はウンジャラゲ♪」
【Pythonクラス爆速理解!!】「BE:FIRST」のメンバーのプロフィール(名前・出身地・身長)でクラスを学習
■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。
Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。