擅长:python、mysql、java
<p>您希望在运行时有一个不变量为真,即西装的初始长度等于顾客的身高。</p>
<p>python的方法不包括init吗?</p>
<pre><code> class Suit(models.Model)
customer = models.ForeignKey(Customer)
suit_design = models.CharField(max_length=500)
suit_length = models.IntegerField(default=lambda:self.customer.height)
def __init__(self, args, kwargs):
super(models.Model, args, kwargs)
if kwargs['customer']:
self.customer = kwargs['customer']
# this creates the invariant
self.suit_length = self.customer.height
else:
raise ValueError("Must have a customer before constructing a Suit")
# More code for suit_design, etc.
}
</code></pre>