呼び出されている action() モジュールの if ステートメントを介して、while ループ (while の繰り返しが True) の条件の変数を (repeat = False に変更し、while ループの条件を満たさないように) 変更したいwhile ループ自体の中で。コメントは、全体を通して私の意図を説明する必要があります。
注:これは、私が実際に作業しているより大きなコードの単純化されたバージョンです。うまくいけば、他の投稿で出くわしたような混乱を招くコードを追加せずに、要点を理解できるようにシンプルかつ明確にしたことを願っています。
# Defining the variables
repeat = True
class monster:
hp = 5
class fighter:
damage = 1
# Defining my action module
def action():
monster.hp -= fighter.damage # Monster's hp decreases by fighter's damage
print "Monster HP is %s" % monster.hp # Print this result
if monster.hp < 1: # Check to see if monster is dead, hp less than 1
repeat = False # If monster is dead, stop repeating
else:
repeat = True # If monster is not dead, repeat attack
# Here is the while loop
while repeat is True: # Defining the condition for the while loop
print "repeat is %r" % repeat # Here it should print repeat is True
action() # Then call the action module
print "repeat is %r" % repeat # Here it should print repeat is False