第十八天 面向对象程序设计的特点(二)

面向对象

多继承
class Parent2():
    print('我是第二个爹')

class Parent():
    print('我是第一个爹')
    
class SubClass(Parent, Parent2):
    print('我是子类')
    
#	
# 结果: 	我是第二个爹
#		    我是第一个爹
# 	        我是子类
#注意:类在定义的时候就执行类体代码,执行顺序是从上到下

__bases __可以获取当前类所有的父类 使用SubClass. __bases __

print(SubClass.__bases__)


(<class '__main__.Parent'>, <class '__main__.Parent2'>)
多态

将父类对象应用于子类的特征就是多态。比如创建一个螺丝类,螺丝类有两个属性:粗细和螺纹密度;然后在创建两类,一个是长螺丝,一个是短螺丝,并且他们都继承了螺丝类。这样长螺丝类和短螺丝类不仅具有相同的特征,还具有不同的特征。子类继承父类特征的同时,也具有了自己的特征,并且能够实现不同的效果,这就是多态的结构。

属性和方法

  • 类属性
  • 实例属性
  • 实例方法
  • 类方法
  • 静态方法(扩展)
 实现:

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

异常

异常简介
  • 程序在运⾏过程中可能会出现⼀些错误。⽐如: 使⽤了不存在的索引,两个不
    同类型的数据相加…这些错误我们称之为异常
  • 处理异常 程序运⾏时出现异常,⽬的并不是让我们的程序直接终⽌!Python
    是希望在出现异常时,我们可以编写代码来对异常进⾏处理
异常的传播
  • 当在函数中出现异常时,如果在函数中对异常进⾏了处理,则异常不会在进
    ⾏传播。如果函数中没有对异常进⾏处理,则异常会继续向函数调⽤传播。
    如果函数调⽤处处理了异常,则不再传播异常,如果没有处理则继续向调⽤
    处传播。直到传递到全局作⽤域(主模块)如果依然没有处理,则程序终⽌,并
    显示异常信息。
  • 当程序运⾏过程中出现异常以后,所有异常信息会保存到⼀个异常对象中。
    ⽽异常传播时,实际上就是异常对象抛给了调⽤处
异常对象
try语句
try:
代码块(可能出现错误的语句)
except 异常类型 as 异常名:
代码块(出现错误以后的处理⽅式)
except 异常类型 as 异常名:
代码块(出现错误以后的处理⽅式)
except 异常类型 as 异常名:
代码块(出现错误以后的处理⽅式)
 ....
else:
代码块(没出错时要执⾏的语句)

finally:
代码块(是否出错该代码块都会执⾏)
try是必须的 else有没有都可以
except和finally⾄少有⼀个
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Asahi_aileen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值