2014-07-07 165 views
-4

我很難讓自己的頭腦在類中變得有用,並使它們在我的代碼中起作用。Python瞭解類

我有一個樹莓派,並試圖讓它在按下按鈕時數起來。它只是非常簡單的瞭解如何在我的代碼中隱藏類。

你可以看看我並告訴我哪裏出錯了。

非常感謝

class Vars(object): 
    def __init__(self): 
     self.count = 0 

x = Vars() 

class Count: 
    def count(self): 
     print x.count 
     x.count += 1 
     time.sleep(0.2) 
    def countReset(self): 
     x.count = 0 
     time.sleep(0.2) 

z = Count() 

class Loop: 
    def loop(self): 
     if (pfio.digital_read(0) and count <= 8): 
      z.count() 
     if not (pfio.digital_read(0)): 
      z.countReset() 

x = Loop() 

while (True): 
    x.loop 
+1

你在做什麼? – chepner

回答

1

儘管這不是正是你認爲你有問題清楚,你有三個類,可能只是一個:

class AllTogether(object): 

    def __init__(self): 
     self.count = 0 

    def count(self): 
     print self.count 
     self.count += 1 
     time.sleep(0.2) 

    def reset_count(self): 
     self.count = 0 
     time.sleep(0.2) 

    def loop(self): 
     if (pfio.digital_read(0) and count <= 8): 
      self.count() 
     if not (pfio.digital_read(0)): 
      self.reset_count() 
0

有有幾個問題代碼,我可以看到:

  • 您正在分配x = Vars()和th後來分配x = Loop()。現在您對原始Vars對象的引用將丟失。嘗試使用不同的名稱。

  • 而不是x.loop,你應該使用x.loop()。前一段代碼只是返回該函數的引用,而後者實際上調用它。

從那裏我不能繼續執行代碼,因爲我沒有pfio。不過,這可能不是在Python中使用類的最好例子。如果你試圖跟蹤變量並將它們附加到特定的對象上,最好用jonrsharpe的答案去解決,並將變量和函數集中到一個類中。