python 面向对象编程计算器

通过面向对象编程方式,定义一个类,输入两个数值,调用函数中的定义的方法进行运算
没有生成结果,返回none
class Calculator():
    def   __init__ (self):
        self.operation_map = {'add':self.add,
                              'subtract':self.subtract,
                              'multiplication':self.multiplication,
                              'division':self.division}
    def get_input(self):
        num1 = int(input())
        num2 = int(input())

    def execute_operation(self,peration):
        self.operation_map['add'] = self.add
        self.operation_map['subtract'] = self.subtract
        self.operation_map['multiplication'] = self.multiplication
        self.operation_map['division'] = self.division
        
    def add(self):
        result = num1+num2
        return result

    def subtract(self):
        result = num1-num2
        return result

    def multiplication(self):
        result = num1*num2
        return result

    def division(self):
        result = num1//num2
        return result

def   _init_ (self):

__init__应该是两边各有两个_下划线
你写的_init_两边各只有一个_下划线

你题目的解答代码如下:

class Calculator():
    def   __init__ (self):  #__init__应该是两边各有两个_下划线
        self.operation_map = {'add':self.add,
                              'subtract':self.subtract,
                              'multiplication':self.multiplication,
                              'division':self.division}
    def get_input(self):
        self.num1 = int(input())  #加self.
        self.num2 = int(input())

    def execute_operation(self,peration):
        return self.operation_map[peration]()

    def add(self):
        result = self.num1+self.num2
        return result

    def subtract(self):
        result = self.num1-self.num2
        return result

    def multiplication(self):
        result = self.num1*self.num2
        return result

    def division(self):
        result = self.num1//self.num2
        return result


p = Calculator()
p.get_input()
print(p.execute_operation("add"))
print(p.execute_operation("subtract"))
print(p.execute_operation("multiplication"))
print(p.execute_operation("division"))

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

你的代码定义有小小问题,加减乘除的num1和num2没有设置类属性,会报错的,你可以参考下面的定义,定义之后还要实例化和调用。


class Calculator():
    def __init__(self):
        self.operation_map = {'add': self.add,
                              'subtract': self.subtract,
                              'multiplication': self.multiplication,
                              'division': self.division}

    def get_input(self):
        self.num1 = int(input())
        self.num2 = int(input())

    def execute_operation(self, peration):
        self.operation_map['add'] = self.add
        self.operation_map['subtract'] = self.subtract
        self.operation_map['multiplication'] = self.multiplication
        self.operation_map['division'] = self.division

    def add(self):
        result = self.num1 + self.num2
        return result

    def subtract(self):
        result = self.num1 - self.num2
        return result

    def multiplication(self):
        result = self.num1 * self.num2
        return result

    def division(self):
        result = self.num1 // self.num2
        return result
# 实例化和调用
c = Calculator()
c.get_input()
print(c.add())
print(c.division())
print(c.multiplication())
print(c.subtract())

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632