为什么python在这个类的第二个方法上抛出错误?

2024-10-03 21:33:19 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么python在这个类的第二个方法上抛出错误?你知道吗

class Lutany:
    formulaa = 0
    formulab = 0
    def __init__(self,num):
        self.num = num
        self.formulaa = self.formulaA()
        self.formulab = self.formulaB


    def formulaA(self):
        q = 0
        num = self.num
        while num > 0 :
            q += num + (num - 1)
            num = num - 1
        return q
        self.formulab = formulaB()

    def formulaB(self):
        num = self.num
        q = 0
        while num > 0 :
            q = q + (num * num)
            num = num - 1
        return (0.5 * q)


if(__name__ == '__main__'):

    l = Lutany(675)

    p = l.formulaa
    q = l.formulab 

    print " FormunlA returned " , str(p) , "  for 675 "
    print " FormulaB returned " , str(q) , "  for 675 " 

运行时出现以下错误:

~$ python lutany.py
Traceback (most recent call last):
File "lutany.py", line 30, in <module> 
l = Lutany(675) 
File "lutany.py", line 7, in init 
self.formulab = self.formulaB 
AttributeError: Lutany instance has no attribute 'formulaB'

Tags: pyselfreturninitdef错误numprint
3条回答

当你说,在形式上,你是指self.formulab = formulaB()吗?你知道吗

您对formulaB()方法的块缩进太多(尽管对问题的编辑破坏了这方面的证据)。确保它位于类indent的正下方的indent级别,而不是上一个方法的indent级别。你知道吗

这里缺少括号:self.formulab = self.formulaB。应该是self.formulab = self.formulaB()。你知道吗

相关问题 更多 >