2013-02-25 38 views
-1
from Card import Card 


    class Hand(object): 
     def __init__(self): 
      self.cards=[] 


     def takeCards(self, cards): 
      self.cards.append(card) 
      pass 

     def clear(self): 
      self.card=[] 
      pass 

     def getTotal(self): 
      for card in slef.cards: 
       if card.value >21 and card ==11: 
        return 1 
       elif not card.value: 
        return None 
       else: 
        total+=card.value   
      pass 

     def isBusted(self): 
      if getTotal>21: 
       return True 


     def __str__(self): 
      if self.__cards: 
       card = "" 
       for i in self.__cards: 
        card += str(i) + "\t" 
      else: 
       card = "Empty" 
      return card + "\t(value " + str(self.getTotal())+")" 



from Hand import Hand 


class Dealer(): 

    def __init__(self,name): 
     super(Dealer,self).__init__() 
     self.name = name 
     pass 

    def takeCards(self,cards): 
     self.__hand.takeCards(cards) 
     pass 

    def clearHand(self): 
     self.Hand.clear(card) 
     pass 

我正在寫一個關於黑傑克的遊戲,但我有一些bug不能修復... 我有兩個班。當我測試我的代碼時,程序說,Dealer對象沒有屬性'Hand'。在清晰的手上。我不知道如何解決這個問題。蟒類錯誤

+0

你可以發佈堆棧跟蹤什麼的? – 2013-02-25 04:04:55

+0

文件「C:\ HumanPlayer.py」,行14,在clearHand builtins.AttributeError:'HumanPlayer'對象沒有屬性'Hand' – user1718826 2013-02-25 04:10:18

回答

1

我看到的第一個問題是你通過自己訪問手。沒有在您的Dealer類的哪個位置實例化Hand類。您可以在Dealer類中嘗試以下內容。

class Dealer(object): 

    def __init__(self,name): 
     super(Dealer,self).__init__() 
     self.name = name 
     self.__hand = Hand() # Instance Hand so you can use its contents. 
     pass 

    def takeCards(self,cards): 
     self.__hand.takeCards(cards) 
     pass 

    def clearHand(self): 
     # self.Hand.clear(card) 
     self.__hand.clear(card) # fixed this to point to our instance 
     pass 
+0

謝謝,它的工作原理 – user1718826 2013-02-25 04:36:04