Форум сайта python.su
0
from Avatar import PlayerAvatar class AAA(object): def __init__(self): pass pre_onEnterWorld_init = PlayerAvatar.onEnterWorld pre_onLeaveWorld_init = PlayerAvatar.onLeaveWorld def new_onEnterWorld_init(current, prereqs): pre_onEnterWorld_init(current, prereqs) self.currentPlayer = BigWorld.player() def new_onLeaveWorld_init(self): pre_onLeaveWorld_init(self) PlayerAvatar.onEnterWorld = new_onEnterWorld_init PlayerAvatar.onLeaveWorld = new_onLeaveWorld_init AAA()
*** File "", line 34, in new_onEnterWorld_init *** NameError: global name 'pre_onEnterWorld_init' is not defined
Отредактировано BossBox (Сен. 4, 2014 07:47:16)
Офлайн
568
Внутри метода ты имеешь объект, а pre_onLeaveWorld_init описана в пространстве имен класса.
То есть обращаться к ней нужно через объект
self.pre_onLeaveWorld_init(self)
Офлайн
0
class AAA(object): onEnterWorld_init = PlayerAvatar.onEnterWorld onLeaveWorld_init = PlayerAvatar.onLeaveWorld def new_onEnterWorld_init(cur, prereqs): sel.onEnterWorld_init(sel, prereqs) PlayerAvatar.onEnterWorld = new_onEnterWorld_init PlayerAvatar.onLeaveWorld = new_onLeaveWorld_init AAA()
Отредактировано BossBox (Сен. 4, 2014 08:53:42)
Офлайн
568
Как-то не ожидаешь увидеть незнание основополагающих принципов языка от человека, изучающего его минимум полгода.
def new_onEnterWorld_init(current, prereqs):
pre_onEnterWorld_init(current, prereqs)
self.currentPlayer = BigWorld.player()
Объяснять вам, что такое self, и зачем он нужен, не буду из принципа.
Отредактировано FishHook (Сен. 4, 2014 09:01:04)
Офлайн
0
Сообщение предыдущие еще раз посмотрите, вы не тот код мне показываете.
Офлайн
568
ОК, вот нужный код.
Если вы мне немедленно не объясните, где вы определяете переменную sel, перед тем как использовать, забаню нафиг.
class AAA(object): onEnterWorld_init = PlayerAvatar.onEnterWorld onLeaveWorld_init = PlayerAvatar.onLeaveWorld def new_onEnterWorld_init(cur, prereqs): sel.onEnterWorld_init(sel, prereqs) PlayerAvatar.onEnterWorld = new_onEnterWorld_init PlayerAvatar.onLeaveWorld = new_onLeaveWorld_init
Офлайн
568
Не объяснил
Забанен за тупость
Офлайн