pthon class paiza 内部変数 デコレータ

その前に

クラスの名前についてはPythonのコーディングスタイルガイドの「Class Names」で「CapWords規約に従った名前にする」ことが基本的には推奨されている。「CapWords」規約とは、その規約名を見ると分かる通り、「単語の先頭は大文字で始めて、名前が複数の単語でつづられるときには、それらをアンダースコアなどを使わずにつなげる」命名法のことだ。例えば、本フォーラムを表すクラスを作るのであれば「DeepInsider」という名前になる。

このように先頭を大文字、他を小文字、アンダースコアは使わずに単語をつなげるような名前にすることで、変数や関数の名前(全て小文字、複数単語はアンダースコアでつなぐ)や定数の名前(全て大文字)と一目でその違いが分かる。

 

class てんこ盛り

# coding: utf-8
# Created:     09/02/2020
# Copyright:   (c) paiza 2020
# paiza > プログラミング学習 > Python > Python3入門編 >
# Python入門編9: さらにクラスを理解しよう > クラス変数とクラスメソッド
from pprint import pprint as 出力

class 戦隊:
    __隊員数 = 0

    @classmethod
    def 総括(cls):
        出力(str(戦隊.__隊員数) + "人で、テロリストを撃破した。")

    def __init__(self, 名前):
        self.名前 = 名前
        戦隊.__隊員数 += 1
        出力(str(戦隊.__隊員数) + "番目の軍人、" + self.名前 + "が登場した。")

    def 攻撃(self, 敵):
        出力(self.名前 + "は、" + 敵 + "を攻撃した!")

class 狙撃手(戦隊):
    def __init__(self):
        super().__init__("狙撃手")

    def 攻撃(self, 敵):
        self.__spell()
        出力(self.名前 + "は、" + 敵 + "にライフル銃を放った!")

    def __spell(self):
        出力("ズバーン!")

出力("=== パーティーでテロリストと戦う ===")
hero = 戦隊("隊長")
warrior = 戦隊("戦士")
wizard = 狙撃手()

party = [hero, warrior, wizard]
for メンバー in party:
    メンバー.攻撃("テロリスト")

戦隊.総括()
=== パーティーでテロリストと戦う ===
1番目の軍人、隊長が登場した。
2番目の軍人、戦士が登場した。
3番目の軍人、狙撃手が登場した。
隊長は、テロリストを攻撃した!
戦士は、テロリストを攻撃した!
ズバーン!
狙撃手は、テロリストにライフル銃を放った!
3人で、テロリストを撃破した。

 

”’

コメント

タイトルとURLをコピーしました