2013-05-29 26 views
0

有人可以向我解釋爲什麼下面的代碼不打印什麼?我正在努力製作和使用Python類

class Deck(object): 

    def __init__(self, deck): 
     self.deck = getDeck(deck) 


    def getDeck(deck): 
     with open(deck, "rU") as csvfile: 
      cardReader = csv.DictReader(csvfile, delimiter=',') 
      newDeck = [] 
      for row in cardReader: 
       for x in range(int(row['NumberOfCards'])): 
        newDeck.append(row) 

      removedKeyDeck = [] 
      for x in range(len(newDeck)): 
       r = dict(newDeck[x]) 
       del r['NumberOfCards'] 
       removedKeyDeck.append(r) 
     return removedKeyDeck 


playerDeck = Deck('deck1.csv') 


print playerDeck 

我試圖從deck1.csv文件創建一個套牌列表。我知道getDeck函數有效,但我沒有正確使用class結構。誰可以幫我這個事?

+0

有些東西似乎在代碼的縮進處被打破。 – languitar

+0

@languitar我修復了縮進 - 只是等待同行評議.. – Ewan

+0

顯然有和下面的回答者修復它。我還沒有完全掌握Stack上的代碼塊發佈過程。 – bhamhawker

回答

0

我固定的縮進在你的問題(如果它是怎麼回事原來它需要固定...)

試試這個:

self.deck = self.getDeck(deck) 

和下面將打印出deck您在__init__函數中設置的屬性。

print playerDeck.deck 
+0

它被打破了...但我不知道它。我在創建類結構之前創建了該函數,因此我不知道需要將'getDeck'函數移到類中。現在全部修好了。非常感激。 – bhamhawker

+0

我剛剛做了,只好等了5分鐘才讓我接受。再次感謝! @kisamoto – bhamhawker

0

在你的代碼會發生什麼事是你創建的類甲板的deck1.csv文件,並且由於init方法自動調用的一個實例,也getDeck方法被調用。但是,您現在沒有使用該返回值。您的打印語句僅打印您創建的Deck實例。如果你想離開班級原樣,那麼打電話

print playerDeck.deck 

會做一些有意義的事情。