gpt4 book ai didi

python - 类型错误 : 'builtin_function_or_method' object is unsubscriptable

转载 作者:行者123 更新时间:2023-11-28 20:53:14 24 4
gpt4 key购买 nike

当我运行这段代码时,Python 解释器出现了一个奇怪的错误:

def make_map():
map = [[Tile(0, 0) for col in range(MAP_WIDTH)] for row in range(MAP_HEIGHT)]

for x in range(MAP_WIDTH):
for y in range(MAP_HEIGHT):
map[x][y].tileType = round((libtcod.noise_perlin(noise2d,[y/MAP_WIDTH,x/MAP_HEIGHT])*100), 0)

它在终端返回这个:

TypeError: 'builtin_function_or_method' object is unsubscriptable 

回溯也指向这个函数:

def render_all():
global color_light_wall
global color_light_ground

#go through all tiles, and set their background color
for y in range(MAP_HEIGHT):
for x in range(MAP_WIDTH):
tileType = map[x][y].tileType
if tileType>30:
libtcod.console_set_back(con, x, y, color_dark_wall, libtcod.BKGND_SET )
else:
libtcod.console_set_back(con, x, y, color_dark_ground, libtcod.BKGND_SET )

#draw all objects in the list
for object in objects:
object.draw()

#blit the contents of "con" to the root console
libtcod.console_blit(con, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0)

我认为它们都与这一行有关:tileType = map[x][y].tileType但如果有人能阐明这一点,我将不胜感激。

谢谢,艾略特博纳维尔

编辑:我忘记包含我的 Tile 类代码和完整的回溯:

class Tile:
#a tile of the map and its properties
def __init__(self, tileType, blocked):
self.tileType = tileType
self.blocked = blocked

回溯:

  File "kindred.py", line 123, in <module>
render_all()
File "kindred.py", line 64, in render_all
tileType = map[x][y].tileType
TypeError: 'builtin_function_or_method' object is unsubscriptable

最佳答案

此错误意味着 python 尝试在 tileType = map[x][y].tileType 中获取变量名称“map”,但他没有在任何地方找到它,因此它获取构建在函数中 map ,这是不可订阅的,因为它是解释错误消息的内置函数:

TypeError: 'builtin_function_or_method' object is unsubscriptable 

我建议您首先将变量名从“map”更改为任何不隐藏任何内置函数的名称,其次,当您更改变量名时,您应该有一个NameError 错误,因为您的变量未定义,所以您应该修复它。

希望我做对了,希望对您有所帮助:)

关于python - 类型错误 : 'builtin_function_or_method' object is unsubscriptable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5369219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com