环境:
操作系统;windows10+python版本:3.4
原因:
最近在看head first设计模式,其中工厂模式中各种if else看着不爽
目标:
实现java反射功能,即根据参数名动态创建类对象,实现工厂模式
代码中create_pizza函数是按照python学习手册写的,支持类初始化时传递参数
class PizzaFactory(object):
@staticmethod
def create_pizza(aClass,*args,**kwargs):
return aClass(*args,**kwargs)
class CheesePizza(object):
def __init__(self,price):
self.price=price
def des(self):
print('我是芝士披萨,价格',self.price)
class ClamPizza(object):
def __init__(self,price):
self.price=price
def des(self):
print('我是雪蛤披萨,价格',self.price)
if __name__=='__main__':
test=PizzaFactory.create_pizza(ClamPizza,10)
test.des()