python3.4 实现java反射功能

环境:
操作系统;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()
发布了27 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ldg513783697/article/details/78597431