Google App Engine Polymodel-覆盖实例方法 - 失败 - python



这简化了我要完成的工作:

B类继承A。

B类应该覆盖A类中的call_me方法。

我正在使用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)

我在终端中获得"超级班级"。

如何确保" sub类方法"被触发/也是?

B类是a的a sentaritance(在数据存储中,它显示为['a','b'](。但是,我不希望从A类呼叫call_me。

当我致电B().__class__.__name__时,我会得到'a'

正确的方法是什么?

没关系。看起来这个代码有效。我正在使用投影qry,所以它无法访问该方法?我不太了解它是如何工作的。

没关系。看起来这个代码有效。我正在使用投影QRY,所以我假设我无法访问该方法?我不太了解它是如何工作的。我稍后再弄清楚。

最新更新