2013-11-28 201 views
0

我在一個函數和另一個函數之間傳遞這個字典時遇到了問題。python - 在函數之間傳遞變量

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

+1

究竟應該發生什麼? –

+1

不,因爲你沒有描述實際的錯誤。發生了什麼不應該發生或者不應該發生的事情? –

回答

0

每次撥打電話enemy_flail時,您正在創建一個新的player字典,重置所有值。

0

您可能想要定義enemy_flail函數外部的player = player_main(),並且只能運行一次,然後每次調用enemy_flail(player)