#yyds干货盘点#python面向对象之工厂函数调用__init__()
Posted 窗边的小豆豆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#python面向对象之工厂函数调用__init__()相关的知识,希望对你有一定的参考价值。
使用工厂函数来完成所有Card对象的创建,在python中,实现工厂有两种途径
- 定义一个函数,返回不同类的对象
- 定义一个类,包含了创建对象的方法。这是完整的工厂设计模式,正如设计模式书中提到的。在工厂类层次结构是必需的
用Card子类对象的一个工厂函数的例子
def Card(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 of range")
这个函数通过传入牌面值rank和花色值suit来创建Card对象这样,这样一来,创建对象的工作更简便了。我们已经把创造对象的过程封装在了单独的工厂函数内,外界无需了解对象层次结构以及多态的工作细节就可以通过调用工厂函数来创建对象。
deck = [card(rank,suit)
for rank in range(1,14)
for suit in (Club,Diamond,Heart,Spade)]
以上是关于#yyds干货盘点#python面向对象之工厂函数调用__init__()的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# 10. 比找女朋友还难的技术点,Python 面向对象
# yyds干货盘点 # Python面向对象中的类变量,实例变量怎么来理解?