2016-02-09 38 views
1

我有一個名爲的SearchQuery,我將數據屬性命名爲查詢(type:String);但是基類有一個類方法query()。所以我SEARCHQUERY類如下:數據屬性重寫基類方法:Python

class SearchQuery(ndb.Model): 
    query = ndb.StringProperty() 

現在,當我寫:

SearchQuery.query() 

我得到:

TypeError: 'StringProperty' object is not callable 

如何調用查詢方法?我將更改我的數據成員名稱,但在更改前我必須複製數據。對於複製,必須調用查詢()

+0

您需要提供數據模型類以用於確定您已完成的工作。 –

+0

我認爲它是一個不好的做法,重寫基類中的方法(特別是對於屬性),它至少不會添加到繼承的方法中。 'query'是ndb.Model的一個類方法,現在你必須通過下面的回答來跳過查詢。 –

回答

0

你並不需要在所有調用它; SearchQuery.query()等於ndb.Query(kind="SearchQuery")

1

您可以使用

如果你有

class Parent(object): 
def query(self): 
    print "Hello" 

class Child(Parent): 
query = "Some string" 

與您共創這樣

c = Child() 
定義的子對象3210

然後,你可以通過使用超級訪問該查詢功能家長

super(Child, c).query()