我在一个函数和另一个函数之间传递这个字典时遇到了麻烦。
def player_main():
player = {"health" : 100,
"xp" : 100,
"strength" : 0,
"dexterity" : 0,
"wisdom" : 0,
"level_req" : None,
"health_spawn" : None,
"enemy_hit" : None}
choice = difficulty_sequence()
if choice == "easy":
player = easy_difficulty(player)
elif choice == "hard":
player = hard_difficulty(player)
player = character_creation(player)
print(player)
return player
理论上我的第二个功能应该从第一个开始调用'player'。第二个根本不改变它的值,但它的一些变量依赖于第一个函数。
def enemy_flail():
print("Flail!")
player = player_main()
stat = player["strength"]
print(stat)
damage = stat//4 + 5
print(damage)
return damage
谁能看到我哪里出错了?
编辑 - enemy_flail()不会打印统计信息或损坏,这会让我相信它不是首先调用player_main()。
答案 0 :(得分:0)
每次拨打enemy_flail
时,您都会创建一个新的player
词典,重置所有值。
答案 1 :(得分:0)
您可能希望在player = player_main()
功能之外定义enemy_flail
,并且只运行一次,然后每次都致电enemy_flail(player)
。