python - 在函数之间传递变量

时间:2013-11-28 14:23:55

标签: python function dictionary

我在一个函数和另一个函数之间传递这个字典时遇到了麻烦。

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()。

2 个答案:

答案 0 :(得分:0)

每次拨打enemy_flail时,您都会创建一个新的player词典,重置所有值。

答案 1 :(得分:0)

您可能希望在player = player_main()功能之外定义enemy_flail,并且只运行一次,然后每次都致电enemy_flail(player)