首页 > 后端开发 > Python教程 > python学习手册中的python多态示例代码

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-06 11:29:26
原创
1147 人浏览过

在处理多态对象时,只需要关注它的接口即可,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'))

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
java - 重载是不是多态??
来自于 1970-01-01 08:00:00
0
0
0
Python获取HTTP请求的状态码(200,404等)
来自于 1970-01-01 08:00:00
0
0
0
条件多态调用的PHP文档
来自于 1970-01-01 08:00:00
0
0
0
我在 Laravel 9.x 中使用多态关系时遇到问题
来自于 1970-01-01 08:00:00
0
0
0
并发 - python多进程+协程的正确姿势?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板