当前位置:  编程技术>python

python学习手册中的python多态示例代码

    来源: 互联网  发布时间:2014-09-04

    本文导语:  在处理多态对象时,只需要关注它的接口即可,python中并不需要显示的编写(像Java一样)接口,在使用对象的使用先假定有该接口,如果实际并不包含,在运行中报错。 代码如下:class handGun():    def __init__(self):        pass...

在处理多态对象时,只需要关注它的接口即可,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消息摘要算法使用示例 iis7站长之家
  • python下xml解析库lxml最新版下载安装以及代码示例
  • python基础教程之python消息摘要算法使用示例
  • 数据结构:图(有向图,无向图),在Python中的表示和实现代码示例
  • python实现绘制树枝简单示例
  • 使用python删除nginx缓存文件示例(python文件操作)
  • python调用windows api锁定计算机示例
  • python代码制作configure文件示例
  • python使用循环实现批量创建文件夹示例
  • python采用requests库模拟登录和抓取数据的简单示例
  • Python数组条件过滤filter函数使用示例
  • python获得图片base64编码示例
  • Python的print用法示例
  • python文件读写并使用mysql批量插入示例分享(python操作mysql)
  • Python pass 语句使用示例
  • python getopt 参数处理小示例
  • python的urllib模块显示下载进度示例
  • python list转dict示例分享
  • python求素数示例分享
  • python实现倒计时的示例
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 用python代码做configure文件
  • Python 3 Tkinter教程之事件Event绑定处理代码实例
  • 生成Python代码的UML插件 PyUML
  • python中的深拷贝(deepcopy)和浅拷贝(copy)介绍及代码参考
  • python 布尔操作实现代码
  • Python类的构造函数,析构函数以及垃圾回收机制详细介绍及代码举例
  • python判断端口是否打开的实现代码
  • python字符串格式化输出及相关操作代码举例
  • python冒泡排序算法的实现代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python不使用print而直接输出二进制字符串
  • 让python同时兼容python2和python3的8个技巧分享
  • Python中实现json字符串和dict类型的互转
  • 使用setup.py安装python包和卸载python包的方法
  • python异常信息堆栈输出到日志文件
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • Python开发者社区整站源码 Pythoner
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • 新手该如何学python怎么学好python?
  • Python异常模块traceback用法举例
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • python之平台独立的调试工具winpdb介绍
  • python版本的问题
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
  • 测试Python内部类型及type和isinstance用法区别
  • python安装的问题
  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换
  • 如何运行Python程序的方法
  • Python namedtuple(命名元组)使用实例
  • 明明安装了python却提示找不到!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3