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

 更新时间:2014年01月21日 09:29:39   作者:  
多态是面向对象语言的一个基本特性,多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式,下面使用一个示例学习他的使用方法

在处理多态对象时,只需要关注它的接口即可,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给PDF添加水印的代码步骤

    Python给PDF添加水印的代码步骤

    在本教程中,我们将学习如何使用 Python 编程语言以及 PyPDF2 和 reportlab 库来向 PDF 文档中添加水印,水印通常用于标记文档的版权信息、保密级别或其他重要通知,需要的朋友可以参考下
    2025-02-02
  • python文件编译为pyc后运行的实现步骤

    python文件编译为pyc后运行的实现步骤

    本文主要介绍了python文件编译为pyc后运行的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python冒泡排序注意要点实例详解

    Python冒泡排序注意要点实例详解

    本文给大家介绍了python冒泡排序知识,涉及到冒泡排序主要的细节问题,本文通过实例代码给大家讲解,介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • Python编程中非常重要却又被严重低估的库decorator

    Python编程中非常重要却又被严重低估的库decorator

    今天介绍的是一个已经存在十年,但是依旧不红的库 decorator,好像很少有人知道他的存在一样。本篇文章不会过多的向你介绍装饰器的基本知识,我会默认你知道什么是装饰器,并且懂得如何写一个简单的装饰器
    2021-10-10
  • Python使用socketServer包搭建简易服务器过程详解

    Python使用socketServer包搭建简易服务器过程详解

    这篇文章主要介绍了Python使用socketServer包搭建简易服务器过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • python中的被动信息搜集

    python中的被动信息搜集

    这篇文章主要介绍了python中的被动信息搜集的相关资料,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Python常见MongoDB数据库操作实例总结

    Python常见MongoDB数据库操作实例总结

    这篇文章主要介绍了Python常见MongoDB数据库操作,结合实例形式详细总结了Python针对MongoDB数据库相关pymongo库安装以及MongoDB数据库的增删改查等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • Python编程中闭包的变量作用域问题解析

    Python编程中闭包的变量作用域问题解析

    这篇文章主要介绍了Python编程中闭包的变量作用域问题解析,在学习Python的返回函数的时候,我发现里面涉及了几个问题,在这里为大家分享讲解下
    2021-10-10
  • Python通过VGG16模型实现图像风格转换操作详解

    Python通过VGG16模型实现图像风格转换操作详解

    这篇文章主要介绍了Python通过VGG16模型实现图像风格转换操作,结合实例形式详细分析了Python使用VGG16模型实现图像风格转换的具体原理、操作步骤与实现方法,需要的朋友可以参考下
    2020-01-01
  • 一文教你利用Python制作一个C盘清理器

    一文教你利用Python制作一个C盘清理器

    关于电脑的垃圾清理操作,已经有很多的成熟的软件可以帮助我们完成C盘的垃圾清理操作,比如360等等。但是使用三方的清理软件往往伴随着很多的广告,所以本文就来用Python制作一个C盘清理器吧
    2023-03-03

最新评论