2015-06-14 33 views
-1

我是Python的新手,之前我看到過這個問題,但沒有一個答案對我有用。 我一直收到<__ main__。對象在0x02C08790> PYTHON

<__main__.Camera object at 0x02C08790> 

我不知道爲什麼! 我的代碼如下,我真的很感激,如果有人可以看看它,並告訴我如何確保它正確流動! 編輯:我想將代碼從Calc_Speed去櫃檯,然後回到Calc_Speed基本上處於循環和抱歉縮進錯誤

class Camera(): 
    distance = 2 
    speed_limit = 20 
    number_of_cars = 0 

    def Calc_Speed(self): 
     registration = input("Registration Plate: ") 
     Speeding_List=[] 
     start = float(input("Start time: ")) 
     end = float(input("End Time: ")) 
     speed = self.distance/(end-start) 
     print(("Average Speed: ") + str(round(speed, 2)) + (" mph")) 
     if speed > self.speed_limit: 
      list3= [str(self.registration)] 
      Speeding_List.append(list3) 
      print("Vehicles Caught Speeding: " + str(Speeding_List)) 
      return(program.Counter()) 
     else: 
      print("Vehicle Not Speeding") 
      return(program.Counter()) 

    def Counter(): 
     self.number_of_cars = self.number_of_cars + 1 
     print("Number Of Cars Recorded: " + str(self.number_of_cars))         
     return(program.Calc_Speed()) 



program = Camera() 
print(program) 
+1

您打印一個'Speed_Camera'對象。你能指望什麼? – Daniel

+1

您的代碼有縮進錯誤,並且沒有定義任何名爲「Speed_Camera」的內容。另外,你從來沒有說過你打算做什麼,所以沒有人能告訴你如何讓它做你想做的事。 – BrenBarn

+0

@BrenBarn。我將該類的名稱從Speed_Camera更改爲Camera,而不更改代碼的其餘部分。哎呀!對不起:) – CoderLearner

回答

3

當你只是打印一個對象,它顯示了對象ID(如<__main__.Camera object at 0x02C08790> ),這對我們凡人來說是完全無法解讀的。您可以通過定義__str____repr__函數來以自定義的方式顯示實例的數據。

你的情況:

def __repr__(self): 
    return "<__main__.Camera: distance = " + str(self.distance) + "; speed_limit = " + str(self.speed_limit) + "; number_of_cars = " + str(self.number_of_cars) + ">" 

如果存在的Camera與起始變量值的情況下,它會返回

"<__main__.Camera: distance = 2; speed_limit = 20; number_of_cars = 0>"

<__main__.Camera object at 0x02C08790>是系統如何記住它,但除了顯示它是什麼類型的對象,它幾乎是無用的。