[英]How to write a django-like Class (“Models”) initialization
我有一个名为“TemporaryPriceReduction”的 object,它告诉我有关正在销售的产品的信息。 class 看起来像这样:
class TPR:
def __init__(self, product_id, territory):
self.product_id = product_id
self.territory = territory
在 django 模型中,它允许您在 init 之外定义事物(至少在继承模型的特定models.Model
中)。
class TPR(models.Model):
product_id = ...
territory = ...
基本上,我希望能够做到这一点:
class TPR(AbstractClass):
product_id = product_id
territory = territory
我怎样才能构建像抽象基础 class 这样的东西,以便我可以定义init
之外的东西(如在 django 中),而不必编写 init?
您所描述的是普通 python 的功能,而不是具体的 django。
当您在__init__
中分配self.product_id =...
时,您将在名为product_id
的实例中分配一个属性。
当您在 class 正文中分配product_id =...
时,您将在 class, TPR.product_id
中创建一个属性。 您的 class 的实例将没有这样的属性,除非您明确分配它们。 Python 属性查找工作使得instance.product_id
将在 class 中找到缺失的属性。 这意味着所有没有显式覆盖product_id
的实例,例如在__init__
中,通过 class 共享与其product_id
相同的 object。
关键是您可以使用您想要的语法来定义属性,而无需对基类做任何特别的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.