У меня есть эти два класса:функция не переопределен в дочернем классе
class Shape(object):
def __init__(self, start_point, *args):
self.vertices = []
self.__make_vertices(start_point, *args)
def __make_vertices(self, start_point, *args):
print "Not Implemented: __make_vertices"
def __getitem__(self, *args):
return self.vertices.__getitem__(*args)
class Cube(Shape):
def __init__(self, start_point, side_length):
Shape.__init__(self, start_point, side_length)
def __make_vertices(self, start_point, side_length):
append = self.vertices.append
start_point = Vector(*(start_point))
i, j, k = side_length*I, side_length*J, side_length*K
append(start_point)
append(self.vertices[-1] - k)
append(self.vertices[-1] - j)
append(self.vertices[-1] + k)
append(self.vertices[-1] - i)
append(self.vertices[-1] - k)
append(self.vertices[-1] + j)
append(self.vertices[-1] + k)
print self.vertices
Когда я делаю новый Cube
, я ожидал, что функция __make_vertices
я определил в классе Cube будет называться, но вместо этого я продолжаю получение сообщения о том, что Shape
классы __make_vertices
функция распечатывается. Что я недопонимаю?
http://php.net/manual/en/language.oop5.overloading.php –
@Allendar: Это Python, а не PHP. – BrenBarn
Извините, я засыпаю за ноутбуком, хе-хе, мой плохой :) –