博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
轻松搞懂Python的属性和方法
阅读量:5086 次
发布时间:2019-06-13

本文共 1089 字,大约阅读时间需要 3 分钟。

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

  • 实例属性
  • 类属性
  • 实例方法
  • 类方法
  • 静态方法

 先来看一下需求:

  1. 设计一个 Game 类

  2. 属性

  • 定义一个 类属性 top_score 记录游戏的 历史最高分
  • 定义一个 实例属性 player_name 记录 当前游戏的玩家姓名
  1. 方法
  • 静态方法 show_help 显示游戏帮助信息
  • 类方法 show_top_score 显示历史最高分
  • 实例方法 start_game 开始当前玩家的游戏
  1. 主程序步骤
    • 查看帮助信息
    • 查看历史最高分
    • 创建游戏对象,开始游戏

 类图:

Game类图

 实现:

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()

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

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

案例小结

  • 实例方法 —— 方法内部需要访问 实例属性
           实例方法内部可以使用 类名. 访问类属性
  • 类 方 法 —— 方法内部 只 需要访问 类属性
  • 静态方法 —— 方法内部,不需要访问 实例属性 和 类属性

转载于:https://www.cnblogs.com/onefine/p/10499388.html

你可能感兴趣的文章
win10中localhost、Tomcat的localhost:8080拒绝访问
查看>>
文本的基本操作
查看>>
在Azure虚拟机上部署FileZilla FTP服务器
查看>>
select标签默认选项
查看>>
select模型
查看>>
(转)mysql中有大量sleep进程的原因与解决办法
查看>>
linux下的crontab
查看>>
leetCodeReorderList链表合并
查看>>
angular 数据双向绑定的终极奥义
查看>>
OneinStack开启fileinfo的方法 解决 think\finfo_open() 报错
查看>>
博客施工暂时告一段落
查看>>
AspNetPager真假分页对照实例
查看>>
POJ 3414 Pots(BFS+回溯)
查看>>
HDU4536 XCOM Enemy Unknown(dfs)
查看>>
ssh三大框架的认识
查看>>
[CF1025D]Recovering BST
查看>>
关于链表问题
查看>>
关于selenium实现滑块验证
查看>>
如何编写高效的jQuery代码(转载)
查看>>
深入浅出AQS之独占锁模式
查看>>