以下のコードで疑問に思ったことがあり質問させていただきます。下から二つのクラス内関数が該当箇所です。まだプログラミング初心者でありかなり初歩的なものかもしれませんがよろしくお願いいたします。
python
1class Game: 2 3def play_game(self): 4 cards = self.deck.cards 5 print('Warをはじめます') 6 while len(cards) >= 2: 7 m = 'qで終了、それ以外のキーでプレイ: ' 8 response = input(m) 9 if response == 'q': 10 break 11 self.p1.card = self.deck.draw() 12 self.p2.card = self.deck.draw() 13 self.print_draw(self.p1, self.p2) 14 if self.p1.card > self.p2.card: 15 self.p1.wins += 1 16 self.print_winner(self.p1) 17 else: 18 self.p2.wins += 1 19 self.print_winner(self.p2) 20 21 22 23 win = self.winner(self.p1, self.p2) 24 print(('ゲーム終了、{}の勝利です'.format(win))) 25 26def winner(self, p1, p2): 27 if p1.wins > p2.wins: 28 return p1.name 29 if p1.wins < p2.wins: 30 return p2.name 31 return '引き分け!'
class Gameクラスの内部にあるplay_game関数とwinner関数が存在していますが、自分の考えでは何か値を取得する場合にはpythonの仕様上により該当するものより上にあるものしか取得できないというイメージがあります。しかし先ほどの二つの関数を確認するとplay_game関数の中でその関数よりも下にあるwinner関数を取得しています。これはclassの中で値を取得しようとしているために起きている現象なのでしょうか?それとも根本的に何か考え方が間違っていますでしょうか?ご教授お願い致します。
回答1件
あなたの回答
tips
プレビュー