我经常遇到必须将变量设置为False的情况。我的最后一个案例是这里的一个:
@cached_property
def dynamic_pricing(self):
self.dynamic_pricing_active = False
test = self.request.event.tickets.filter(dynamic_pricing__activated=True)
for ticket in test:
if ticket.is_available():
self.dynamic_pricing_active = True
break
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['dynamic_pricing_active'] = self.dynamic_pricing_active
return context
是否有避免设置self.dynamic_pricing_active = False
的方法?
在其他情况下,由于与此处相同的原因,我不得不用False定义最多四个变量。
答案 0 :(得分:1)
您可以使用any
,它会在遇到真值时也将快捷方式:
self.dynamic_pricing_active = any(ticket.is_available() for ticket in test)