Python-class,继承和多态,异常处理

Class 类
class MyClass:
    def __init__(self, val):  # 初始化函数,self必须要有
        self.val = val

    def display(self, s):
        print('%s: %d' % (s, self.val))

# python中类和对象都是可以传递的。

m = MyClass(100)  # 进行对象传递
print(m.val)  # 100
m.display('hello')  #等同于 display(m, 'hello')   输出   hell0: 100
print('')

m2 = m
print(id(m))  # 这里主要看下m2 和 m 是等价的
print(id(m2))

fn = m.display
fn('hey')  # hey: 100


继承和多态

# 继承和多态
class Base:
    pass

class MyClass(Base):
    def run(self):
        print('MyClass run')
        
class MyClass2(Base):
    def run(self):
        print('MyClass2 run')

m = MyClass()
print(isinstance(m, MyClass))
print(issubclass(MyClass2, Base))
print('')

# 多态
# python关注继承的类有没有这个方法,而不关注是从哪里继承过来的
m2 = MyClass2()
m.run()
m2.run()
print('')

def duck(d):
    d.run()

class Man:
    def run(self):
        print('man run')

class Monkey:
    def run(self):
        print('monkey run')

duck(Man())
duck(Monkey())

异常处理

主要考虑:捕捉异常情况,跟具体的执行进行解耦

import traceback

try:
    print('try...')
    r = 10 / 0
except ZeroDivisionError as e:
# 2.7: except ZeroDivisionError, e:
    print('ZeroDivisionError:', e)
    print(traceback.print_exc())
finally:
    print('finally...')  # 不管错误是否发生,都要去执行以下。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值