【问题标题】:Bool object does not support item assignmentBool 对象不支持项赋值
【发布时间】:2015-05-08 16:21:11
【问题描述】:
is_shooting = []
is_shooting.append(False)
ShootWeapon(0)    

def ShootWeapon(wep_num):
        is_shooting[wep_num] = True

我收到一个奇怪的错误,python 告诉我 bool 对象不支持项目分配,我不知道为什么。

完整的追溯

Traceback (most recent call last):
  File "C:\Users\Kian\Desktop\GitHub\SuperNova\Main.py", line 141, in <module>
    main.InputEvents()
  File "C:\Users\Kian\Desktop\GitHub\SuperNova\Main.py", line 133, in InputEvents
    }[event.key]()
  File "C:\Users\Kian\Desktop\GitHub\SuperNova\Main.py", line 129, in <lambda>
    pg.K_a : lambda : Weapons.Weapons.ShootWeapon(0),
  File "C:\Users\Kian\Desktop\GitHub\SuperNova\Weapons.py", line 107, in ShootWeapon
    is_shooting[wep_num] = True
TypeError: 'bool' object does not support item assignment

【问题讨论】:

  • 该代码不会产生该错误(在重新排序之后,以便在使用之前定义 ShootWeapon)。您将需要构建一个带有完整错误回溯的example,以便我们可以指出您在哪里设置了布尔值。
  • 请包含您的完整回溯;听起来好像你在其他地方反弹了 is_shooting 全局。

标签: python python-3.x


【解决方案1】:

在代码中的某处else,您将布尔值直接分配给 is_shooting 全局:

>>> is_shooting = [False]
>>> is_shooting[0] = True
>>> is_shooting = True
>>> is_shooting[0] = True
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'bool' object does not support item assignment

你必须搜索你的代码才能找到你这样做的地方。

【讨论】:

  • 谢谢,我发现错误出现在与我正在查看的函数完全不同的函数中。它出错的功能不在跟踪中,但我找到了。感谢您的帮助!
猜你喜欢
  • 2020-02-13
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2019-04-04
  • 1970-01-01
相关资源
最近更新 更多