您的位置:首页 > 编程语言 > Python开发

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

2017-05-20 23:24 501 查看
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...') # 不管错误是否发生,都要去执行以下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python