Python-将函数的参数设为可选

时间:2018-12-19 11:44:10

标签: python-3.x arguments parameter-passing

我正在学习构建一个Python函数,该函数从用户那里获取一些输入并将其传递给该函数以作为SQL语句的一部分执行。

def sales(sale_date,prod_type,prod_category):
    db.execute("""select prod_name,quantity,price_per_product from sales 
                      where sale_date = (%s) and prod_type = (%s) and prod_category =(%s)""",
                      (sale_date,prod_type,prod_category)

我想知道如何修改上面的函数,以便如果不提供其中一个参数,我仍将执行该函数,但是缺少的参数将不会添加为过滤器。

也就是说,如果sale_date为Null(或None),我该如何修改上面的函数。谢谢

1 个答案:

答案 0 :(得分:0)

使用默认参数并分别处理个案怎么样?看看这个片段:

def sales(sale_date=None, prod_type=None, prod_category=None):

    if sale_date is not None and prod_type is not None and prod_category is not None:
        db.execute("""select prod_name,quantity,price_per_product from sales 
                      where sale_date = (%s) and prod_type = (%s) and prod_category =(%s)""",
                      (sale_date,prod_type,prod_category)
    # Handling other cases
    elif ... :
        pass
    else:
        pass

您可以针对每种情况提供单独的SQL语句。