python 静态方法@staticmethod,类方法@classmethod,实例方法的应用场景

在学习黑马程序员的视频,看到记录下。

静态方法:方法内部,不需要访问类属性和实例属性

类方法: 方法内部,只需要访问类属性

实例方法: 方法内部需要访问实例属性,可以用 类名(或self).类属性名 访问类属性

 1 class Game(object):
 2 
 3     top_score = 120 #游戏最高分
 4 
 5     def __init__(self,player_name):
 6         self.player_name = player_name
 7 
 8     @staticmethod
 9     def show_help():
10          print("帮助信息:按Erter键开始游戏")
11 
12     @classmethod
13     def show_top_score(cls):
14         print("历史最高分:%s" %cls.top_score)
15 
16     def start_game(self):
17         print('%s开始游戏了,他的最高分为%s分' %(self.player_name,self.top_score))
18 
19 #1.查看游戏帮助信息。静态方法,不需要访问类的任何属性
20 Game.show_help()
21 
22 #2.查看历史最高分。类方法,这里只需要访问类属性top_score
23 Game.show_top_score()
24 
25 #3.创建游戏对象小明。实例方法,先创建了一个实例对象play,这里需要访问实例对象的player_name属性,还访问了类属性top_score
26 play = Game("小明")
27 play.start_game()

输出为:

帮助信息:按Erter键开始游戏
历史最高分:120
小明开始游戏了,他的最高分为120分

猜你喜欢

转载自www.cnblogs.com/Haleyhaley/p/9073674.html