Python - 无法调用/跳过方法

时间:2012-10-05 22:45:31

标签: python methods skip

编辑:

我将添加整个代码,clases和东西的名字都是西班牙语,但我希望你理解:

class Rubro():
'''
Representa un rubro de venta. Por ejemplo: pastas y quesos son dos
rubros diferentes.
'''
def __init__(self, id, nombre, descripcion, icono=None):
    self.id = id
    self.nombre = nombre
    self.descripcion = descripcion
    self.icono = icono
    self.col_variedades = {}
    self.objBroker = persistencia.obtener_broker(self, None)

def obtener_todos(self):
    self.objBroker.cargar_todo() 

class Broker():
def cargar_todo(self):
    pass


class sqliteBrokerArticulos(Broker):

def __init__(self):
    self.obj_db = sqliteDB()

def cargar_todo(self):
    return self.ejecutar("SELECT * FROM articulos")

def ejecutar(self, sentenciaSQL):
    conn = self.obj_db.abrir_conexion()
    try:
        conn.execute(sentenciaSQL)
        conn.commit()
    except:
        return False
    self.obj_db.cerrar_conexion()

我不知道如何解释它,这是代码:

class A():

    def a(self):
        return self.objC.b()

class B():
    def b(self):
       #do something

class C(B):

    def b(self):
       #do something else

问题是它没有进入b(),它只是跳过它,当它到达那条线时就离开了()

我不知道它会是什么。

1 个答案:

答案 0 :(得分:0)

您是否想知道为什么从不调用B.b()方法?或者为什么永远不会调用C.b()方法?

如果是前者,那是因为在C.b()中,你没有调用超类方法:

>>> class B(object):
...   def b(self):
...     print "in B.b"
...
>>> class C(B):
...   def b(self):
...     print "in C.b"
...
>>> c = C()
>>> c.b()
in C.b
>>> class C(B):
...   def b(self):
...     print "in C.b"
...     super(C, self).b()
...
>>> c = C()
>>> c.b()
in C.b
in B.b
>>>