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

风抚弄着庄稼,时而把它吹弯,时而把它扬起,仿佛大地在进行有节奏的呼吸,那一档档成熟的小麦也都有了生命,风从那边来,传来麦穗与麦穗间的细语。

在处理多态对象时,只需要关注它的接口即可,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 面向对象之封装、继承、多态操作实例分析

Python面向对象之继承和多态用法分析

Python实现多态、协议和鸭子类型的代码详解

Python3.5面向对象程序设计之类的继承和多态详解

Python面向对象程序设计类的多态用法详解