python多态(摘录)
来源:互联网 发布:怎样安装电脑软件 编辑:程序博客网 时间:2024/05/17 07:29
多态是面向对象语言的一个基本特性,多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式。在处理多态对象时,只需要关注它的接口即可,python中并不需要显示的编写(像Java一样)接口,在使用对象的使用先假定有该接口,如果实际并不包含,在运行中报错。
class handGun():
def __init__(self):
pass
def fire(self):
print 'handGun fire'
class carbine():
def __init__(self):
pass
def fire(self):
print 'carbine fire'
import handGun
import carbine
class gunFactory():
def __init__(self,gun_type):
self.gun_type = gun_type
def produce(self):
if handGun == self.gun_type:
return handGun.handGun()
else:
return carbine.carbine()
客户端
fa = gunFactory(handGun)
gun = fa.produce()
/*只要是枪,就认为它具有开火的功能,如果没有开火的功能,程序运行中就报错*/
gun.fire()
可以看到跟一般的静态语言相比,python并没有在语言级别来保证接口的正确性,只能依靠文档、代码来保证(可以在代码中检查接口是否存在,hasattr(gun,'fire'))
- python多态(摘录)
- python性能优化摘录(二)
- Python学习 Tip摘录
- python性能优化摘录
- 【python摘录01】字符串
- 网络摘录:Python and Tcl
- Python入门简短实例摘录
- python教程<流畅的 Python> 摘录
- 阅读摘录(一)
- 读书摘录(二)
- 自然?使然?(摘录)
- 正则表达式(摘录)
- 正则表达式(摘录)
- CStringList用法 (摘录)
- C++标准(摘录)
- 事件(摘录)
- 软件界面风格(摘录)
- (摘录)英语学习方法
- GRE写作必备句型
- mybatis 的SqlMapConfig.xml配置文件(精华) 小结
- 在OC的h头文件声明使用C++ class,不引用C++的h文件
- SSH使用RSA公钥配置免密码登录
- [线段树]HDU 1754 I hate it
- python多态(摘录)
- expect用法[自动连接远程机器脚本]
- ubuntu12.04 安装VLC,在root用户下不能使用的问题
- referer详细解析
- HTML 网页截图
- HDOJ 2036 改革春风吹满地(叉乘定理)
- 解题报告:最多有多少个点在一条直线上
- 关于Eclipse
- 常见Linux发行版