在尝试从python中的其他函数创建函数时出现错误
问题描述:
我一直在试图创建一个计算器,并且出于实际原因,我试图从单独的python文件导入函数。它在一定程度上起作用,但当它尝试进行计算时会中断。问题是添加没有被定义,但我在导入函数时已经定义了它。下面是代码:在尝试从python中的其他函数创建函数时出现错误
class Calculator(object):
import a10 as add
import d10 as div
import m10 as mult
import s10 as sub
def choice(self):
print("A. Addition\l B. Substraction\l C. Division\l D. Multiplication")
xn = input("What do you want to do? ")
if xn == "a":
addition = add.addition
x = self.addition()
self.x = x
return x
elif xn == "b":
subtraction = sub.subtraction
z = self.subtraction()
self.z = z
return z
elif xn == "c":
division = div.division
y = self.division()
self.y = y
return y
elif xn == 'd':
Multiplication = mult.multiplication
v = self.Multiplication()
self.v = v
return v
objcalc = Calculator()
print(objcalc.choice())
这里是A10
def addition(self):
try:
n = int(input("enter number: "))
n_for_add = int(input("What do you want to add on " + str(n) + " ? "))
except ValueError:
print("you must enter an integer!")
n_from_add = n + n_for_add
print(str(n) + " plus " + str(n_for_add) + " equals to " + str(n_from_add))
S10
def subtraction(self):
try:
nu = int(input("enter number: "))
nu_for_sub = int(input("What do you want to take off " + str(nu) + " ? "))
except ValueError:
print("you must enter an integer!")
nu_from_sub = nu - nu_for_sub
print(str(nu) + " minus " + str(nu_for_sub) + " equals to " + str(nu_from_sub))
M10
def Multiplication(self):
try:
numb = int(input("enter number: "))
numb_for_multi = int(input("What do you want to multiply " + str(numb) + " on? "))
except ValueError:
print("you must enter an integer!")
numb_from_multi = numb * numb_for_multi
print(str(numb) + " multiplied by " + str(numb_for_multi) + " equals to " + str(numb_from_multi))
D10
def division(self):
try:
num = int(input("enter number: "))
num_for_div = int(input("What do you want to divide " + str(num) + " off? "))
except ValueError:
print("you must enter an integer!")
num_from_div = num/num_for_div
print(str(num) + " divided by " + str(num_for_div) + " equals to " + str(num_from_div))
答
在if
语句,就像这样:
if xn == "a":
addition = add.addition
x = self.addition()
self.x = x
return x
addition
被创建为一个局部变量的函数choice
,但你再设置x
为self.addition()
,这是没有定义的。
如果你的意思是写x = add.addition()
然后被警告你的addition
函数不返回任何东西,它只是打印出一个值。对于其他功能也是如此 - 它们都不返回任何内容。所以self.addition
没有定义,并x
将是一个NoneType
对象
你addition
,subtraction
等功能也采取self
作为参数,当他们不是在一个类的方法,所以这并没有太大的意义。
'addition'没有正确缩进。 –
你的班级也没有正确缩进。 –