classOperate:def__init__(self):passclassAdd(Operate):defresult(self):return(self.a+self.b)classSubduct(Operate):defresult(self):returnself.a-self.bclassMultiply(Operate):defresult(self):returnself.a*self.bclassDivide(Operate):defresult(self):returnself.a/self.bclassFactory: #简单工厂,实现各个类实例化交互的过程defrun(self):
op=Operate #注意:a,b,operation都是运算父类Operate的 ‘类属性’ 这样其子类才能够直接调用,子类不能访问父类的实例属性
op.a= int(input('plz input the first number:'))
op.operation= input('plz input operation like(+,-,*,/):')
op.b= int(input('plz input the second number:'))if(op.operation =='+'):PRint(Add().result())elif(op.operation =='-'):print(Subduct().result())elif(op.operation =='*'):print(Multiply().result())elif(operation =='/'):print(Divide().result())
Factory().run()