我想在Python中實現類似Rails動態查找器的東西(對於 webapp/GAE)。動態查找工作是這樣的:Python中缺少動態查找器和方法
- 你的人有一些領域:姓名,年齡和電子郵件。
- 假設您想查找名稱爲「Robot」的所有用戶。
Person類有一個稱爲「find_by_name」,其接收的名稱 並返回查詢的結果的方法:
@classmethod
def find_by_name(cls, name):
return Person.gql("WHERE name = :1", name).get()
而不必編寫這樣的一個方法爲每個屬性的,我我喜歡 有類似Ruby的method_missing,允許我這樣做。
到目前爲止,我已經看到了這兩個博客文章:http://blog.iffy.us/?p=43和 http://www.whatspop.com/blog/2008/08/method-missing-in-python.cfm但我 喜歡聽什麼做的「最appropiate」的方式。
我試圖使用這段代碼,但我仍然得到:'AttributeError(「類型對象'FindableModel'沒有'find_by_name'','''''屬性。你能解釋一下如何使用它嗎? – hakunin 2012-03-10 13:11:47
@hakunin你好嗎?你應該把它作爲你模型的父類。 – 2012-03-10 20:04:00
這裏是我使用的模型:https://gist.github.com/2014164我很喜歡使用'__getattr__',但是由於某種原因它不會被調用。 – hakunin 2012-03-11 00:10:00