Skip to main content
 首页 » 编程设计

python之如何正确压缩此 Python IF 语句

2025年05月04日18sxdcgaq8080

我是 Python 的新手,正在尝试寻找一种更好的编码方式。必须有一种方法,但不确定如何去做。

这两个查询本质上是一样的,所以必须要有办法减少。有没有更有效的方法来做到这一点?

        if set_date is not None: 
 
            if is_rejected != 'true': 
                query = query\ 
                    .filter(createddate__lte=set_date) \ 
                    .car_statuses(CarTow.TOWED) \ 
                    .order_by('-createddate') 
            else: 
                query = query\ 
                    .filter(createddate__lte=set_date) \ 
                    .car_statuses(CarTow.TOWED,CarTow.CONFIRMED) \ 
                    .order_by('-createddate') 
 
            return query 

抱歉,如果这是一个简单的问题,新手。

请您参考如下方法:

您可以通过将不同的参数拉入 if 语句并将共同的东西放在外面来简化。

if set_date is not None: 
       if is_rejected != 'true': 
             car_statuses = (CarTow.TOWED,) 
       else: 
             car_statuses = (CarTow.TOWED, CarTow.CONFIRMED) 
 
       query = query\ 
           .filter(createddate__lte=set_date) \ 
           .car_statuses(*car_statuses) \ 
           .order_by('-createddate') 
      return query