类的属性和方法有什么区别?据我所知,属性在创建对象时计算。而方法是在调用它时进行计算。
除此之外,还有其他的区别吗?
例如,在我的class Product()
中有一个property
:
@property
def total_ammount_in_store(self):
consignments = self.product.package.consignments
total_ammount = 0
for consignment in consignments:
total_ammount += consignment.package_ammount
当我渲染一些页面时,我会传递一些产品。例如:{'products':Product.objects.filter(expiration_data < datetime.now())
我不需要每次获取Product
实例时都计算total_ammount_in_store
。如果我只需要在模板中调用它时进行计算,{{product.total_ammount_in_store}},这是否可行?
method是在创建对象时计算的吗?