Python中静态方法与类方法的区别

python 专栏收录该内容
54 篇文章 0 订阅

1. 静态方法的使用 

#_*_coding:utf-8_*_
# 类方法使用@classmethod 修饰

# cls.内部类封装,可以在类方法内部访问类方法和类属性

class Writer(object):

    age = 15
    
    def __init__(self, age, name):
        Writer.age += age
        self.name = name

    @staticmethod
    def read():
        print('你好啊')

    def hello(self):
        print(self.name)

    @classmethod
    def hear(cls):
        print(cls.age)

   

rb = Writer(18,'黎明')
rb.hear()
rb.read()
rb.hello()

运行结果:

2. 使用cls来调用内部变量

import random
class Game(object):

    #游戏最高分,类属性
    top_score = [0,0,0]

    @staticmethod
    def show_help():
        print('帮助信息,让僵尸走进房间')

    @classmethod
    def show_top_score(cls):
        print('游戏最高分是 %d'% cls.top_score[0])
    
    def __init__(self, player_name):
        self.player_name = player_name
    @classmethod
    def show_oneTothree(cls):
        print('前三名的成绩 %s'% cls.top_score)

    def start_game(self):
        print('[%s] 开始游戏' % self.player_name)
        self.score = random.randint(1,10000)
        print('%s  游戏结束...' %self.player_name)
        print('%s 最后的分为 %d' % (self.player_name,self.score))
        self.top_score.append(self.score)
        self.top_score.sort(reverse=True)
        self.top_score=Game.top_score.pop()



    @classmethod
    def show_score(cls):
        print(cls.top_score)
        

        #使用类名,修改历史最高分
        #Game.top_score = 999


# 1. 查看游戏帮助
Game.show_help()

# 2. 查看游戏最高分
#Game.show_top_score()


# 3. 创建游戏对象,开始游戏

game1 = Game('小明')
game1.start_game()
game2 = Game('小红')
game2.start_game()
game3 = Game('小马')
game3.start_game()
# 4.查看前三名
Game.show_oneTothree()

# 5. 查看历史最高分
Game.show_top_score()
        
    

 结果图:

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值