2010-05-16 2 views
5

У меня есть запрос, который сопоставляется с этим классом ChatMsg Требуется 3 получить переменные, имя пользователя, имя комнаты и msg. Но на этой последней строке это не получается.Google App Engine python - Self не определен

class ChatMsg(webapp.RequestHandler): # this is line 239 
    def get(self): 
     username = urllib.unquote(self.request.get('username')) 
     roomname = urllib.unquote(self.request.get('roomname')) # this is line 242 

Когда он пытается присвоить roomname, он говорит мне:

<type 'exceptions.NameError'>: name 'self' is not defined 
Traceback (most recent call last): 
    File "/base/data/home/apps/chatboxes/1.341998073649951735/chatroom.py", line 239, in <module> 
    class ChatMsg(webapp.RequestHandler): 
    File "/base/data/home/apps/chatboxes/1.341998073649951735/chatroom.py", line 242, in ChatMsg 
    roomname = urllib.unquote(self.request.get('roomname')) 

, что, черт возьми, происходит, чтобы самостоятельно не определен

+1

Код выглядит хорошо для меня с первого взгляда, вы уверены, что это не проблема синхронизации с сервером или что-то еще? Судя по пути к файлу, вы не используете это локально. –

+0

Если есть какая-то метаклассическая магия, код выглядит нормально, как есть. Что такое 'type (ChatMsg)'? – jfs

+2

Тройной проверить ваш отступ. Отличительные отличия в Python очень значительны. Убедитесь, что у вас нет смешанных вкладок и пробелов. –

ответ

3

Это должно быть проблемой отступа. Трассировка показывает, что ошибка не в методе get(). Вы получаете исключение NameError во время определения вашего класса. Попробуйте выполнить следующий код, вы получите то же самое исключение, что и у вас.

class ChatMsg(object): # this is line 239 
    def get(self): 
     username = urllib.unquote(self.request.get('username')) 
    roomname = urllib.unquote(self.request.get('roomname')) # this is line 242