2 Stimmen

TypeError: 'builtin_function_or_method'-Objekt ist unsubscriptable

Ich erhalte eine seltsame Fehlermeldung vom Python-Interpreter, wenn ich diesen Code ausführe:

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)

Dies wird im Terminal angezeigt:

TypeError: 'builtin_function_or_method' object is unsubscriptable 

Der Traceback verweist ebenfalls auf diese Funktion:

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)

Ich glaube, sie sind beide mit dieser Linie verbunden: tileType = map[x][y].tileType aber wenn jemand etwas Licht in diese Angelegenheit bringen könnte, wäre ich sehr dankbar.

Danke, Elliot Bonneville

EDIT: Ich habe vergessen, meinen Tile-Klassencode und den vollständigen Traceback einzufügen:

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

Rückverfolgung:

  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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X