[Python-es] sqlite3.Connection y ABCMeta

Sio2 sio2sio2 en gmail.com
Vie Oct 9 20:42:51 CEST 2015


Un saludo a toda la lista:

Tengo una consultita a ver si sabéis por qué narices no me funciona el
crear una interfaz para un objeto "Connection" (es python 2.7.10 lo que
estoy usando):

#v+
#/usr/bin/env python
#vim: set encoding=utf-8

from abc import ABCMeta, abstractmethod

class SQLDBC(object):

    __metaclass__ = ABCMeta

    @abstractmethod
    def metodo_abstracto(self): pass

import sqlite3
class SQLiteDBC(SQLDBC, sqlite3.Connection): pass
#v-

El método "metodo_abstracto" no está implementado en SQLiteDBC, así que
debería generarse una excepción al crear un objeto de esta clase. Sin
embargo, no ocurre así: el objeto se crea sin problemas.

Por supuesto, si hago que SQLiteDBC herede solamente de SQLDBC, la
excepción se produce, como espero.

¿A alguno se le ocurre qué pasa?

-- 
   Como todo al fin se sabe
yo he sabido la verdad.
                  --- Muñoz Seca ---


Más información sobre la lista de distribución Python-es