如何解决计算器类执行错误“名称未定义”
我是python的新手,在分配作业时,我遇到了制作计算器的问题: 其中定义数学函数后,我应该“-定义另一个名为execute_command的方法,该方法需要两个数字和一个名为command的字符串” 这部分最让我感到困惑,为此我编写了以下代码,这反过来显示了一个错误“即使未初始化类实例,也未定义类c1”,您能告诉我哪里错了吗?
class Calculator():
def __init__(self,a,b):
self.a = a
self.b = b
def add(self):
return self.a + self.b
def sub(self):
return self.a - self.b
def mult(self):
return self.a * self.b
def div(self):
return self.a / self.b
def execute_command(self,cmd):
self.cmd = cmd
if cmd == "Add":
Calculator.add
if cmd == "Sub":
Calculator.sub
if cmd == "Mul":
Calculator.mult
if cmd == "Div":
Calculator.div
a = int(input('Enter First number : '))
b = int(input('Enter Second number : '))
cl = Calculator(a,b)
c1.execute_command(cmd=input('Enter the function to be performed : ').casefold())
解决方法
这是因为您将字母l误认为数字1。您还犯了一些错误。当类记住数字的值时,您不能将加法函数作为静态函数完成。这是您的工作代码
class Calculator():
def __init__(self,a,b):
self.a = a
self.b = b
def add(self):
return self.a + self.b
def sub(self):
return self.a - self.b
def mult(self):
return self.a * self.b
def div(self):
return self.a / self.b
def execute_command(self,cmd):
print(cmd)
if cmd == "add":
return self.add()
if cmd == "sub":
return self.sub()
if cmd == "mul":
return self.mult()
if cmd == "div":
return self.div()
a = int(input('Enter First number : '))
b = int(input('Enter Second number : '))
cl = Calculator(a,b)
print(cl.execute_command(cmd=input('Enter the function to be performed : ').casefold()))
,
对于上述要求,您必须使一个函数接受三个参数,其中两个为否。第三是操作名称。因此,您可以尝试以下代码:
class Calculator:
def execute_command(self,b,cmd):
self.cmd = cmd
self.a = a
self.b = b
if cmd == "Add":
total = a+b
print("Output after "+cmd+": "+str(total))
if cmd == "Difference":
total = a - b
print("Output after "+cmd+": "+str(total))
if cmd == "Multiplication":
total = a * b
print("Output after "+cmd+": "+str(total))
if cmd == "Division":
total = a / b
print("Output after "+cmd+": "+str(total))
c = Calculator()
c.execute_command(8,2,"Division")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。