私は次のようなクラスを持っています:
class Hand():
def __init__(self, hand_a, play_deck, split_count, name): # hand_a for hand actual
self.hand_a = hand_a # the actual hand when instance created
self.play_deck = play_deck # need to move this to deck class
self.split_count = split_count
self.name = name
別のクラスで、Handのインスタンスを作成します。
class DECK():
def __init__(self):
pass
def deal(self, play_deck):
dhand = {}
phand = {}
for i in range (2):
play_deck, phand[i] = pick_item(play_deck)
play_deck, dhand[i] = pick_item(play_deck)
# creat instance of Hand for player's starting hand
self.start_hand = Hand(phand, play_deck, 0, "Player 1")
3番目のクラスでは、「start_hand」と呼ばれるHandの最初のインスタンスにアクセスしようとしています。
class Game():
def __init__(self):
pass
def play_game(self):
self.deck = DECK()
self.deck.deal(play_deck)
print "dhand = %r" % start_hand.hand_a
しかし、次のエラーが発生します。
print "dhand = %r" % start_hand.hand_a
NameError: global name 'start_hand' is not defined
私も試しました:
print "dhand = %r" % self.start_hand.hand_a
しかし、次のエラーが発生します。
print "dhand = %r" % self.start_hand.hand_a
AttributeError: Game instance has no attribute 'start_hand'
他の方法でクラスインスタンスを作成する必要がありますか、それとも別の方法でアクセスする必要がありますか、またはその両方ですか?それとも、最初からやり直す必要があるほど離れているのでしょうか。