Python NameError:未定义

时间:2014-11-26 04:33:34

标签: python loops

我正在尝试根据用户输入创建累积总计。

class Accumulator:
    # Create self value == 0
    def __init__(self, newval = 0):
        self.value = newval

    # Addition function
    def add(self, newval):
        return self.value + newval

然后我有几个不同的功能。在功能全部完成之后,我将我的操作符设置为等于“T'它会立即终止程序。在这里,当我尝试:newval,运算符是我得到第一个错误的地方,其次我会得到错误"添加"没有定义。

operator = 'z'

while operator != 't' or operator != 'T':
    try:
        newval, operator
    except:
        #Prompt user to enter a number and valid operator
        newval, operator = input("Enter a valid number, space, then an operator: ").split()

下面,根据用户输入的操作员调用与该字母相关的任何功能。以" A"例如:

elif operator == 'a' or operator == 'A':
        print(add(self, newval))
        self.value = add(self, newval)

然后我的程序应该保持累计总数并继续运行...直到用户进入' t'或者' T'。

1 个答案:

答案 0 :(得分:0)

如果您在课堂内使用

,则必须使用self.add
elif operator == 'a' or operator == 'A':
    print(self.add(self, newval))
    self.value = self.add(self, newval)

如果你没有在同一个类中使用,那么你必须使用object varibale

a = Accumulator()
...
...
elif operator == 'a' or operator == 'A':
    print(a.add(self, newval))
    self.value = a.add(self, newval)