0

私はこのコードを持っています。私がやろうとしているのは表示機能を呼び出すことですが、エラーが発生します。これはコードです:

level = [0, 0, 0,
         0, 1, 0,
         0, 0, 0]

class player:
    def getPlayerLoc(self, level):
        for i in level:
            if level[level.index(i)] == 1:
                print level.index(i)

    def display(self, level, levelx, levely):
        for i in level:
            layer = ""
            for h in range(levely): 
                height = h+1
                if level.index(i) < levelx*height and level.index(i) >= levelx*h:
                    if level[level.index(i)] == 0:
                        layer = layer + " - "
                    elif level[level.index(i)] == 1:
                        layer = layer + " O "

                if height == levely:
                    print layer
                    layer = ""

p1 = player()
p1.getPlayerLoc(level)
p1.display(level, 3, 3)

出力は次のとおりです。

4
Traceback (most recent call last):
  File "gamy.py", line 28, in <module>
    p1.display(level, 3, 3)
AttributeError: player instance has no attribute 'display'

これは、属性 getPlayerLoc を取得しても表示しないため、非常に奇妙です。助けてください!

4

1 に答える 1

1

インデントに問題があるかもしれません。IDEで「空白を表示」機能を有効にすることができます。

display-method を getPlayerLoc の上に移動してみてください。getPlayerLoc が失敗した場合は、インデント エラーを示します。

于 2012-05-28T18:48:56.903 に答える