Полимодель движка приложения google - переопределяющий метод экземпляра - ошибка - python
Вот упрощение того, что я пытаюсь сделать:
класс B наследуется от A.
Класс B должен переопределить метод call_me в классе A.
Я использую Google App Engine (может быть, поэтому?)
from google.appengine.ext import ndb
from google.appengine.ext.ndb import polymodel
class A(polymodel.PolyModel):
def call_me(self):
print "super class called"
return
@classmethod
def get_call_me(cls, qry)
return [m.call_me() for m in qry]
class B(A):
def call_me(self):
print "sub class method called"
return
Когда я звоню
object_b = B()
all_A = A.query() # get's object_b as well because object_b is an A
A.get_call_me(all_A)
Я получаю "супер класс называется" в терминале.
Как сделать так, чтобы вместо / также запускался "метод подкласса"?
класс B является A по наследству (в хранилище данных он отображается как ['A', 'B']). Но я не хочу, чтобы call_me из класса A вызывался.
когда я звоню B().__class__.__name__
Я получаю 'A'
Как правильно это сделать?
Не берите в голову. Похоже, этот код работает. Я использовал проекцию qry, чтобы у него не было доступа к методу? Я не совсем понимаю, как это работает.
1 ответ
Не берите в голову. Похоже, этот код работает. Я использовал проекцию qry, поэтому я предполагаю, что у меня не было доступа к методу? Я не совсем понимаю, как это работает. Я разберусь позже.