3
作爲一名Python程序員,我喜歡我的代碼是可重用的,我試圖避免在我的代碼中出現好的名稱衝突(兩個不同的模型共享相同的名稱善良的名字)。設置一個與模型名稱無關的名稱(App Engine數據存儲)
目前我只是在模型的類名前添加了一些有意義的文本,但是這非常和諧。
能夠明確地設置模型的類型將解決我的問題,但我不知道如何做到這一點,有誰知道如何?
作爲一名Python程序員,我喜歡我的代碼是可重用的,我試圖避免在我的代碼中出現好的名稱衝突(兩個不同的模型共享相同的名稱善良的名字)。設置一個與模型名稱無關的名稱(App Engine數據存儲)
目前我只是在模型的類名前添加了一些有意義的文本,但是這非常和諧。
能夠明確地設置模型的類型將解決我的問題,但我不知道如何做到這一點,有誰知道如何?
只是覆蓋類的kind()
方法:
class MyModel(db.Model):
@classmethod
def kind(cls):
return 'prefix_%s' % super(MyModel, cls).kind()
可以定義,這是否一個自定義的基類爲您:
class ModuleModel(db.Model):
@classmethod
def kind(cls):
return '%s_%s' % (cls.__module__, super(ModuleModel, cls).kind())
延伸ModuleModel會的名稱的任何類模塊的名稱前面定義了它。
你可以發表一個或兩個你正在談論的衝突嗎?你是如何碰到具有相同類名的模型的? – 2011-03-14 15:51:22