Перейти до змісту

Типи параметрів функції

Під час створення функції можна зазначити, які аргументи потрібно передавати обов'язково, а які ні. Відповідно, функція може бути створена з:

  • обов'язковими параметрами
  • необов'язковими параметрами (опціональними параметрами зі значенням за умовчанням)

function

Обов'язкові параметри

Обов'язкові параметри визначають, які аргументи потрібно передати функції обов'язково. При цьому їх потрібно передати рівно стільки, скільки вказано параметрів функції (не можна вказати більшу або меншу кількість).

Функція з обов'язковими параметрами:

def check_passwd(username, password):
    if len(password) < 8:
        print("Пароль надто короткий")
        return False
    elif username in password:
        print("Пароль містить ім'я користувача")
        return False
    else:
        print(f"Пароль для користувача {username} встановлено")
        return True

Функція check_passwd очікує два аргументи: username та password.

Функція перевіряє пароль та повертає False, якщо перевірки не пройшли та True, якщо пароль пройшов перевірки:

In [2]: check_passwd("nata", "12345")
Пароль надто короткий
Out[2]: False

In [3]: check_passwd("nata", "12345lsdkjflskfdjsnata")
Пароль містить ім'я користувача
Out[3]: False

In [4]: check_passwd("nata", "12345lsdkjflskfdjs")
Пароль для користувача nata встановлено
Out[4]: True

Необов'язкові параметри (параметри зі значенням за замовчуванням)

При створенні функції можна вказувати значення за замовчуванням для параметра:

def check_passwd(username, password, min_length=8):

У цьому випадку параметр min_length вказаний зі значенням за замовчуванням і може не передаватися під час виклику функції.

Приклад функції check_passwd з параметром за замовчуванням:

def check_passwd(username, password, min_length=8):
    if len(password) < min_length:
        print("Пароль надто короткий")
        return False
    elif username in password:
        print("Пароль містить ім'я користувача")
        return False
    else:
        print(f"Пароль для користувача {username} встановлено")
        return True

Так як параметр min_length має значення за замовчуванням, відповідний аргумент можна не вказувати при виклику функції, якщо значення за замовчуванням підходить:

In [7]: check_passwd("nata", "12345")
Пароль надто короткий
Out[7]: False

Якщо потрібно змінити значення за замовчуванням:

In [8]: check_passwd("nata", "12345", 3)
Пароль для користувача nata встановлено
Out[8]: True

In [9]: check_passwd("nata", "12345", min_length=3)
Пароль для користувача nata встановлено
Out[9]: True