私はブラックジャックゲームを構築することでPython(VBAのバックグラウンドを持つ)を学んでいます(はい、例としてブラックジャックを使用してたくさんの質問をしました)。
これが私のコードです:
import random
class DECK():
def load_deck(self):
suite = ('Spades', 'Hearts', 'Diamonds', 'Clubs')
rank = ('2', '3', '4', '5', '6', '7', '8', '9', '10', "Jack", "Queen", "King", "Ace")
full_deck = {}
i = 0
for s in suite:
for r in rank:
full_deck[i] = "%s of %s" % (r, s)
i += 1
return full_deck
def pick_item(self, deck):
card_key = random.choice(deck.keys())
new_card = deck[card_key]
del deck[card_key]
return (deck, new_card)
def missing_card(self, deck):
temp_deck = DECK()
print temp_deck
d1 = DECK()
deck1 = d1.load_deck()
deck1, card1 = d1.pick_item(deck1)
print card1
d1.missing_card(d1)
これが私がターミナル(ファイル名hand_c.py
)で取得するものです:
$ python hand_c.py
Ace of Clubs
<__main__.DECK instance at 0x10bb0d248>
$
なぜ一方の関数は機能するpick_item
が、もう一方は機能しないのmissing_card
ですか?
最初の答えに従って、関数定義を次のように変更しました。
def missing_card(self, deck):
deckC1 = DECK()
temp_deck = deckC1.load_deck
print temp_deck
しかし今、私はターミナルから次のものを取得します:
$ python hand_c.py
Jack of Diamonds
<bound method DECK.load_deck of <__main__.DECK instance at 0x10500e248>>
$