python中的属性和方法_轻松搞懂Python的属性和方法

目标,区分一下几个概念:

实例属性

类属性

实例方法

类方法

静态方法

先来看一下需求:

设计一个 Game 类

属性:

定义一个 类属性 top_score 记录游戏的 历史最高分

定义一个 实例属性 player_name 记录 当前游戏的玩家姓名

方法:

静态方法 show_help 显示游戏帮助信息

类方法 show_top_score 显示历史最高分

实例方法 start_game 开始当前玩家的游戏

主程序步骤

查看帮助信息

查看历史最高分

创建游戏对象,开始游戏

类图:

20190112212504190.png

实现:

class Game(object):

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

@staticmethod

def show_help(): # 静态方法

print("帮助信息:让僵尸走进房间")

@classmethod

def show_top_score(cls): # 类方法

print("游戏最高分是 %d" % cls.top_score)

def __init__(self, player_name):

self.player_name = player_name # 实例属性

def start_game(self): # 实例方法

print("[%s] 开始游戏..." % self.player_name)

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

测试:

# 1. 查看游戏帮助

Game.show_help()

# 2. 查看游戏最高分

Game.show_top_score()

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

game = Game("小明")

game.start_game()

# 4. 游戏结束,查看游戏最高分

Game.show_top_score()

提问: 如果方法内部 即需要访问 实例属性,又需要访问 类属性,应该定义成什么方法?

应该定义 实例方法 因为,类只有一个,在 实例方法 内部可以使用 类名. 访问类属性

案例小结

实例方法 —— 方法内部需要访问 实例属性

实例方法内部可以使用 类名. 访问类属性

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值