是否有必要在此处使用“如果”语句?

2024-06-10 00:59:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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)进行赋值呢


Tags: inself示例forreturnif定义not
1条回答
网友
1楼 · 发布于 2024-06-10 00:59:17

这是有区别的,做什么

return self.__total = sum(item.total() for item in self.cart)

覆盖私有变量total保留的任何先前值,而

if not hasattr(self, '__total'):            
    self.__total = sum(item.total() for item in self.cart)        
return self.__total

将返回上一个值(如果它是在…之前指定的)

相关问题 更多 >