2015-12-09 878 views
-1

無法理解我的代碼中的問題,新的類(通常也是python,所以很抱歉,如果我的名字錯誤)。我收到此錯誤:Python類(AttributeError:''object has no attribute'')

我認爲我的代碼太長,以致於在這裏包含,所以我做了一個簡化的版本來測試下面的概念。

問題是,如何創建一個新的自我對象「self4」?然後可以在課堂上使用其他功能。目前我收到這個錯誤。

AttributeError: 'className' object has no attribute 'self4'

class className(object): 

    def __init__(self, self1=1,self2=2,self3=3): 
     self.self1=self1 
     self.self2=self2 
     self.self3=self3 

    def evaluate(self, self5): 
     print className.func1(self) + className.func2(self) 
     self.self5=self5 
     print className.func1(self) 

    def func1(self): 
     return self.self1 + self.self5 

    def func2(self): 
     self.self4 = self.self1+self.self2+self.self3 
     return self.self4 

tester.py

import tester.py 

mst=tester.className() 

mst.evaluate() 
+1

你爲什麼不叫在'__init__'''self.func2()? – falsetru

+0

我已經添加了如何稱此代碼。我希望能夠針對不同的情況調用評估,例如self1 = 4和self1 = 3. – WBM

+1

我剛剛在你的問題中運行的代碼,它的工作正常....它打印7 6.問題是無效的... – Pandrei

回答

0

編輯:
你的代碼工作正常!
什麼問題?

我仍然認爲將self4移動到init中會更好!

原始
我覺得最順理成章的事情是定義上的init self4

class className(object): 
    def __init__(self, self1=1, self2=2, self3=3): 
     self.self1 = self1 
     self.self2 = self2 
     self.self3 = self3 
     self.self4 = None 

    #rest of class 
+0

問題中的代碼工作正常.... – Pandrei

+0

確實如此,現在就嘗試過。所以基本上沒有錯誤,因此沒有問題? – Altoyyr

0

你應該在法傳遞self4

相關問題