Python:判断客户列表中是否存在符合预算的Hipster客户
解决方法:判断列表中是否存在符合预算的Hipster客户
你之前的代码错误在于,isinstance(x, HipsterRecurrent)返回的是布尔值(True/False),而布尔对象并没有is_in_budget()方法,因此会触发属性错误。
正确的写法有两种:
- 方法一:先筛选出Hipster类型的客户,再调用预算判断方法
any(x.is_in_budget() for x in self.RecurrentCustomersList if isinstance(x, HipsterRecurrent))
这种写法逻辑更清晰,只对Hipster客户调用方法,避免不必要的判断。
- 方法二:利用布尔短路特性,先判断类型再调用方法
any(isinstance(x, HipsterRecurrent) and x.is_in_budget() for x in self.RecurrentCustomersList)
这里只有当isinstance(x, HipsterRecurrent)为True时,才会执行后面的x.is_in_budget(),同样能达到目的。
内容的提问来源于stack exchange,提问作者Bruce Rv
相关产品推荐
相关产品推荐

