如何避免将每个变量明确设置为False?

时间:2019-03-23 22:44:27

标签: python django

我经常遇到必须将变量设置为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定义最多四个变量。

1 个答案:

答案 0 :(得分:1)

您可以使用any,它会在遇到真值时也将快捷方式:

self.dynamic_pricing_active = any(ticket.is_available() for ticket in test)