2010-05-16 30 views
5

Mam prośbę, aby mapować do tej klasy ChatMsg Przyjmuje 3 zmienne get, username, roomname i msg. Ale tutaj kończy się niepowodzeniem.Python Google App Engine - nie zdefiniowano siebie

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 

Kiedy próbuje przypisać roomname, mówi mi:

<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')) 

co się do cholery dzieje, aby samo niezdefiniowane

+1

kod wygląda OK do mnie na pierwszy rzut oka, to na pewno nie jest to problem synchronizacji z serwerem czy coś? Sądząc po ścieżce pliku, nie uruchamiasz tego lokalnie. –

+0

O ile nie ma jakiejś magii metaklasu, kod wygląda tak, jak jest. Czym jest "type (ChatMsg)"? – jfs

+2

Potrójnie sprawdź wcięcia. Różnice w wcięciach są bardzo znaczące w Pythonie. Upewnij się, że nie masz mieszanych kart i spacji. –

Odpowiedz

3

To powinno być problemem wcięcie. Funkcja traceback pokazuje, że błędu nie ma w metodzie get(). Otrzymasz wyjątek NameError w momencie definiowania klasy. Spróbuj wykonać poniższy kod, otrzymasz ten sam wyjątek, jaki masz.

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