作为一名 Python 程序员,我喜欢我的代码是可重用的,我试图避免代码中的种类名称冲突(其中两个不同的模型共享相同的种类名称)。
目前,我只是在模型的类名前面添加一些有意义的文本,但这非常不符合Python风格。
能够显式设置模型的种类将解决我的问题,但我不知道如何做到这一点,有人知道怎么做吗?
只需覆盖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 的类都会将其定义的模块名称作为类型名称的前缀。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)