UnboundLocalError:分配前已引用局部变量“ enemyhp”

时间:2019-01-21 19:04:15

标签: python

说实话,我真的不确定是什么问题。我想做的是从敌军中减去attackdmg。据我所知,这都是正确的。我通过以下回溯不断收到错误消息:

<body>

我是python的新手,所以对不起

Traceback (most recent call last):
  File "/tmp/sessions/95bd63b8a3cf1ead/main.py", line 71, in <module>
    attack()
  File "/tmp/sessions/95bd63b8a3cf1ead/main.py", line 46, in attack
    enemyhp = enemyhp - attackdmg
UnboundLocalError: local variable 'enemyhp' referenced before assignment

本来应该只是将被攻击者从敌军身上夺走,但我真的不确定为什么会这样出错。

2 个答案:

答案 0 :(得分:1)

使用全局变量具有“坏风格”的感觉……您需要告诉python您要修改 global enemyhp

der attack():
    global enemyhp  # you want to modify the global one
    # ... rest of code...

如果忽略它,它将在本地函数范围内寻找enemyhp并找不到它:因此是“在声明前使用”。

读取全局变量很好,您无法修改它们。

答案 1 :(得分:0)

您必须指定要在函数内部使用全局变量。

替换下一行

enemyhp = enemyhp - attackdmg

使用

global enemyhp
enemyhp = enemyhp - attackdmg