重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了Python工厂函数用法。分享给大家供大家参考,具体如下:
创新互联服务项目包括太谷网站建设、太谷网站制作、太谷网页制作以及太谷网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,太谷网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到太谷省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!参考了很多代码、别人的文章以及书籍,最后自己做了适合自己理解的一种理解总结方式。
很多人说,工厂函数看上去像函数,其实是类。我觉得这种方法有些牵强,虽说在OOP中Python有其自己对类以及对象的定义。在一定程度上这么说是可以的。
我个人的理解,既然叫做工厂函数,那么这一定是一个函数。不过,看了许多例子后发现,其实工厂函数基本上都是带有返回对象的。而这些返回对象则是通过调用一种或者多种类来创建的对象。
例如,有如下代码:
#!/usr/bin/python class Card: def __init__(self,rank,suit): self.suit = suit self.rank = rank self.hard,self.soft =self._points() classNumberCard(Card): def _points(self): returnint(self.rank),int(self.rank) classAceCard(Card): def _points(self): return 1,11 classFaceCard(Card): def _points(self): return 10,10 class Suit: def __init__(self,name,symbol): self.name = name self.symbol = symbol defcard(rank,suit): if rank == 1: return AceCard('A',suit) elif 2 <= rank < 11: return NumberCard(str(rank),suit) elif 11 <= rank < 14: name ={11:'J',12:'Q',13:'K'}[rank] return FaceCard(name,suit) else: raise Exception("Rank out ofrange")