Когда я пытаюсь связать метод, я получаю сообщение об ошибке:
Traceback (most recent call last):
File "pygametest3.py", line 12, in <module>
render = winback.rend()
TypeError: unbound method rend() must be called with winback instance as first argument (got nothing instead)
Это код, вплоть до оскорбительной точки:
import sys, pygame
pygame.init()
class winback:
"""Render the window"""
def rend(self):
rendsurf.fill(black)
rendsurf.blit (landsurf, (landx,landy,640,480))
screen.blit (rendsurf, (0,0,640,480))
pygame.display.flip()
render = winback.rend()
Кроме того, я сожалею, если это наглядно очевидно и не стоит публиковать/переставлять. Это мое первое реальное погружение в питон, я работал над этим весь день, я чувствую себя глупо, а это 12:30 утра.
Классы должны быть инстанцированы до того, как может быть вызван нормальный метод.
class Winback(object):
def rend(self):
...
winback = Winback()
render = winback.rend()
Или вы можете использовать @staticmethod
. Но вместо этого сделайте это функцией уровня модуля.
winback().rend()
также будет работать, если она будет написана так:winback().rend()
, а посколькуrend()
фактически не возвращает ничего, нет причин назначать дляrender
.