![](/img/trans.png)
[英]TypeError: unbound method 'method name' must be called with 'class name' instance as first argument (got str instance instead)
[英]TypeError: unbound method “method name” must be called with “Class name” instance as first argument (got str instance instead)
我认为这应该是一个简单的问题来回答。
我有下一堂课:
class GruposHandler(webapp.RequestHandler):
def get(self):
self.obtenerPagina()
def obtenerPagina(self, pOpcion = None, pMensajeInformacion = None):
opcion = pOpcion if pOpcion is not None else self.request.get('opcion')
usuario = obtenerUsuario()
rsGrupos = obtenerGruposAll()
listaOtrosGrupos = []
listaGruposSuscriptos = []
blah blah ........
class NuevoGrupoHandler(webapp.RequestHandler):
def post(self):
nombre = self.request.get('nombre')
descripcion = self.request.get('descripcion')
obj = Grupo.get_by_key_name(nombre)
if obj:
doRender(self, 'nuevo_grupo.html', {'mensaje_descripcion':'Ya existe un grupo con ese nombre.'})
else:
grupo = model.Grupo(key_name = nombre, nombre=nombre, descripcion = descripcion);
grupo.put()
grupoHandler = GruposHandler
grupoHandler.obtenerPagina("gruposMios", 'Informacion: un nuevo grupo fue agregado.')
但似乎来自GruposHandler的方法obtenerPagina没有被正确调用。 这是我得到的堆栈跟踪:
TypeError: unbound method obtenerPagina() must be called with GruposHandler instance as first argument (got str instance instead)
我做错了什么?
提前致谢...
grupoHandler = GruposHandler
==>
grupoHandler = GruposHandler()
更新:
GruposHandler.obtenerPagina()
方法接受3个参数:
self
, pOpcion=None
和pMensajeInformacion=None
。
由于其中2个是可选的,因此您无法获得:
TypeError: ... takes exactly 3 arguments (2 given)
当这样称呼时:
GruposHandler.obtenerPagina("gruposMios", 'Informacion: ...')
相反, GruposHandler.obtenerPagina()
解释这样的参数:
self="gruposMios", pOpcion='Informacion: ...', pMensajeInformacion=None
和加薪:
TypeError: ... must be called with instance (got str instance instead)
要摆脱异常,您需要从实例中调用此方法:
GruposHandler().obtenerPagina("gruposMios", 'Informacion: ...')
并且self
将被隐含地传递给obtenerPagina
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.