繁体   English   中英

如何编写类似 django 的 Class(“模型”)初始化

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM