我开始学习python,看不懂,错误在哪里
class Gun(object):
def __init__(self, magazine=6):
self.__dict__["magazine"] = magazine
self.__dict__["ammo"] = ammo
错误日志
self.__dict__["ammo"] = ammo
UnboundLocalError: local variable 'ammo' referenced before assignment
最佳答案
错误出现在您的 __init__
参数中。参数定义中没有ammo
。
尝试以下操作:
class Gun(object):
def __init__(self, magazine=6, ammo=5): # Now there is!
self.__dict__["magazine"] = magazine
self.__dict__["ammo"] = ammo
我建议不要修改对象__dict__
。只需创建一个实例变量,它们做同样的事情,但代码更具可读性。
class Gun(object):
def __init__(self, magazine=6, ammo=5):
self.magazine = magazine
self.ammo = ammo
In [3]: gun = Gun()
In [4]: gun.ammo
Out[4]: 5
In [5]: gun.magazine
Out[5]: 6
当然,您应该阅读 official tutorial on classes
关于python - __init__ 中的 UnboundLocalError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22787012/