Python实现简单工厂模式

本文介绍了一个使用工厂模式实现的简易计算器程序。通过定义一系列运算类(加、减、乘、除等),并根据用户输入的运算符创建对应的运算类实例来完成计算任务。此程序展示了如何利用面向对象的设计原则和工厂模式简化复杂系统的构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图所示。



代码如下:

#工厂模式特点:工厂根据条件产生不同功能的类
class Operation(object):
    def get_result(self):
        pass

class Add(Operation):#继承自类Operation
    def get_result(self):
        return self.op1+self.op2

class Sub(Operation):
    def get_result(self):
        return self.op1-self.op2

class Mul(Operation):
    def get_result(self):
        return self.op1*self.op2

class Div(Operation):
    def get_result(self):
        return self.op1/self.op2

class Undef(Operation):
    def get_result(self):
        print("no define operator")

class Factory(object):
    operator=dict()#将operator定义为一个字典
    operator["+"]=Add()
    operator["-"]=Sub()
    operator["*"]=Mul()
    operator["/"]=Div()
    #operator:{"+":Add(),"-":Sub,"*":Mul,"/":Div}

    def create_operator(self,ch):
        op=self.operator[ch] if ch in self.operator else Undef()
        return op#op的值是四则运算类中的一个或者无定义

def main():
    print("*" *30)
    op=input("operator:")#输入运算符
    opa=int(input("a:"))
    opb=int(input("b:"))
    factory=Factory()
    cal=factory.create_operator(op)#获取到相应的类
    cal.op1=opa#该类有两个成员
    cal.op2=opb
    print(cal.get_result())#改类调用成员函数计算出结果

if __name__=='__main__':
    while 1:
        main()
    pass
出自:https://blog.youkuaiyun.com/freeking101/article/details/53073716
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值