这简化了我要完成的工作:
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,所以我假设我无法访问该方法?我不太了解它是如何工作的。我稍后再弄清楚。