Python-class,继承和多态,异常处理
2017-05-20 23:24
501 查看
Class 类
继承和多态
# 继承和多态
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...') # 不管错误是否发生,都要去执行以下。
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 面向对象编程 继承 和多态
- python之7-2类的继承与多态
- 016: class and objects > 多重继承与多态的例子
- Python 继承和多态
- 在VB6下如何实现继承,重载和多态----DynamicClassFactory
- python class的继承
- Python 面向对象编程――继承和多态
- 【Python】python-一个class继承的小case
- [Python进阶-4]类的继承/多态/多重继承/任意多参数
- 【Python学习笔记】面向对象编程:继承和多态
- python 面向对象——继承与多态
- objective-c--- 类、继承、多态、点语法、@class
- python学习小结5:封装、继承、多态
- Python 4.3 继承和多态
- 【Python】[面向对象编程] 访问限制,继承和多态
- 【Python】初识继承与多态--简明教程
- Python 面向对象编程(三)继承与多态
- 用实例解释Python中的继承和多态的概念
- Python学习记录七---继承、多态和封装
- python学习——继承和多态