Python - Создание аргументов для функции необязательно - PullRequest
0 голосов
/ 19 декабря 2018

Я учусь создавать функцию 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 голосов
/ 19 декабря 2018

Как насчет использования аргументов по умолчанию и индивидуальной обработки дел?Взгляните на этот фрагмент:

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 для каждого случая, который вы хотите охватить.

...