2010-05-16 15 views
5

Tengo una solicitud que se asigna a esta clase ChatMsg Se necesitan 3 variables de obtención, nombre de usuario, nombre de habitación y msg. Pero falla en esta última línea aquí.Google App Engine python: el uno mismo no está definido

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 

Cuando se trata de asignar roomname, me dice:

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

qué demonios va a hacer uno mismo no define

+1

El código me parece bien de un vistazo, ¿está seguro de que esto no es un problema de sincronización con el servidor o algo así? A juzgar por la ruta del archivo, no está ejecutando esto localmente. –

+0

A menos que haya alguna magia de metaclase, el código se ve bien tal como está. ¿Qué es 'tipo (ChatMsg)'? – jfs

+2

Comprueba tres veces tu sangrado. Las diferencias de sangría son muy significativas en Python. Asegúrese de no tener pestañas y espacios mixtos. –

Respuesta

3

Este debería ser un problema de sangrado. El rastreo muestra que el error no está en el método get(). Obtiene la excepción NameError en el momento de la definición de su clase. Intenta ejecutar el siguiente código, obtendrás la misma excepción que tienes.

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