【发布时间】:2020-03-18 11:16:19
【问题描述】:
Fluent Python 的示例 6-3 定义了一个私有变量 self.__total,并在其赋值之前使用了一个 if 语句,如下所示:
if not hasattr(self, '__total'):
self.__total = sum(item.total() for item in self.cart)
return self.__total
为什么不直接使用语句return self.__total = sum(item.total() for item in self.cart) 进行赋值?
【问题讨论】:
-
这似乎是一种保护,只计算一次,不修改它或提高性能