Типи параметрів функції¶
Під час створення функції можна зазначити, які аргументи потрібно передавати обов'язково, а які ні. Відповідно, функція може бути створена з:
- обов'язковими параметрами
- необов'язковими параметрами (опціональними параметрами зі значенням за умовчанням)
Обов'язкові параметри¶
Обов'язкові параметри визначають, які аргументи потрібно передати функції обов'язково. При цьому їх потрібно передати рівно стільки, скільки вказано параметрів функції (не можна вказати більшу або меншу кількість).
Функція з обов'язковими параметрами:
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
Необов'язкові параметри (параметри зі значенням за замовчуванням)¶
При створенні функції можна вказувати значення за замовчуванням для параметра:
У цьому випадку параметр 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 має значення за замовчуванням, відповідний аргумент можна не вказувати при виклику функції, якщо значення за замовчуванням підходить:
Якщо потрібно змінити значення за замовчуванням: