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