练习题-游戏获取最高分,类属性,类方法获取

游戏设计-静态方法,类方法,实例方法,类属性,def __str__(self):魔术方法

最高分-类属性,因为每个玩家都能查看,更新最高分

获取最高分-类方法获取

玩家打印时,返回对象,定义def __str__(self):魔术方法,让其返回用户名

静态方法-与每个玩家无关,但是提醒每个玩家,可以定义为静态方法

实例方法-与每个玩家相关

from random import randint


class Player:
    top_score = 0
    score_list = []

    def __init__(self, name):
        self.name = name

    @classmethod
    def display_history_high_score(cls):
        cls.top_score = max(cls.score_list)

    def start(self):
        self.show_help()

        print(f"欢迎{self.name}光临,请愉快玩耍!")
        score = randint(0, 100)
        self.score_list.append(score)

    @staticmethod
    def show_help():
        print(f"\n欢迎光临,植物大战僵尸游戏!")
        print(f"游戏过程中,要遵守相关规定!")

    # __str__方法是魔术方法
    # a. 名称是固定的
    # b. 当print(对象)时, 会自动调用__str__方法
    # c. 只能返回字符串类型, 其他类型会报错
    def __str__(self):
        return self.name


player1 = Player("小小")
player2 = Player("叮当")
player3 = Player("TOM")

# 没有定义魔术方法__str__时,返回
# <__main__.Player object at 0x02987150>
# <__main__.Player object at 0x02987E90>
# <__main__.Player object at 0x029A3DD0>

# 定义魔术方法__str__后,return self.name,返回
# 小小
# 叮当
# TOM
print(player1)
print(player2)
print(player3)

 

posted @ 2020-04-21 19:31  依羽杉  阅读(148)  评论(0编辑  收藏  举报