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...') # 不管错误是否发生,都要去执行以下。