On Fri, 2008-11-28 at 01:36 -0300, Aldrin Martoq wrote:
> [...]
> class AvahiBrowser(gobject.GObject, list):
> TypeError: Error when calling the metaclass bases
> multiple bases have instance lay-out conflict
> Estuve buscando, pero no encontre algo facil de saltarme este problema
> (Metaclases y no se que, muy complejo y no me tinca).
> Alguien tiene alguna sugerencia o alternativa elegante? Basicamente
> quiero recibir notificaciones de cuando aparece/desaparece un servicio
> Y
> usarlo como lista, osea:
Me respondo yo mismo: basta implementar los metodos para sequencias[1]
class AvahiBrowser(gobject.GObject):
## sequence type support ##
def __len__(self):
return len(self.items)
def __getitem__(self, key):
return self.items[key]
def __iter__(self):
return self.items.__iter__()
def __contains__(self, item):
return self.items.__contains__(item)
Saludos a todos!
> ab = AvahiBrowser()
> ab.browse()
> ab.connect('found', metodo)
>
> print "%d servicios encontrados:" % len(ab)
> for service in ab:
> print "\t", service
>
>
> Gracias!
>
> PS: adjunto el codigo si desean ver, para que funcione el demo
> intercambiar las lineas 83,84.
>
--
Aldrin Martoq <amartoq dcc uchile cl>
http://aldrinvideopodcast.podshow.com/
Attachment:
signature.asc
Description: This is a digitally signed message part