LotoBasicクラスにプロパティを追加する

Loto基本クラスにプロパティを追加し、内部データにアクセスしやすいようにした。

と言っても、_bnのような要素をbonusというプロパティでアクセスできるようにしただけである。

修正後のプログラムは以下の通り。

(ファイル名) loto_basic.py

class LotoBasic:
    def __init__(self, round, numbers, bonus_numbers, prize_nums, amount_nums, carry_over=0):
        """
        round: 回
        numbers: 当選番号のリスト
        bonus_numbers: ボーナス数字のリスト
        prize_nums: 当選者数のリスト
        amount_nums: 当選金額のリスト
        carry_over: キャリーオーバーの金額
        """

        self._round = round
        self._numbers = numbers
        self._bn = bonus_numbers
        self._pn = prize_nums
        self._an = amount_nums
        self._co = carry_over

    @property
    def nums(self):
        return self._numbers

    @property
    def bonus(self):
        return self._bn

    @property
    def priznum(self):
        return self._pn

    @property
    def amounts(self):
        return self._an

    @property
    def c_over(self):
        return self._co

    def __str__(self):
        bn_str = '[' + ','.join([str(i) for i in self._bn]) + ']'

        return "({round}) {numbers} {bn} PN[{pn}] AN[{an}] CO({co})".format(round=self._round,\
                numbers=','.join([str(i) for i in self._numbers]),\
                bn=bn_str, pn=','.join([str(i) for i in self._pn]),
                an=','.join([str(i) for i in self._an]), co=self._co)

これにより、以下のプロパティで内部データにアクセスできる。

プロパティ名 取得データ
nums 抽選数字のリスト
bonus ボーナス数字のリスト
priznum 各等毎の当選者数のリスト
amounts 各等毎の当選金額のリスト
c_over キャリーオーバー金額