Функції та вирази
Функції повертають значення. Отже виклик функції можна вважати виразом. Це у свою чергу означає що виклик функції можна використовувати в інших виразах:
>>> len('a') + 4
5
>>>
Оскільки при виклику функції їм передають значення, то у якості аргумента можна вказати вираз:
>>> n = len('a' + 'bc')
>>> n
3
>>>
І навіть одній функції ми можемо передати значення, яке повертає інша функція:
>>> print(len('a'))
1
>>>
Ще трохи складніший приклад виразів з функціями:
>>> print(len('a' + 'bc') + 1)
4
>>>
Тип даних NoneType
Ми завжди коли викликали функцію print()
ігнорували значення, яке вона повертає.
А дійсно, що ж повертає ця функція? Давайте з'ясуємо:
>>> r = print('hello')
hello
>>> r
>>>
Здається що нічого...
Виглядає логічним: задача функції print
полягає у виводі даних, і повертати їй начебто і немає чого.
Але з іншого боку якщо функція є вираз, то вона мусить щось повертати!
Часом виникає потреба вказати не певне конкретне значення, а якесь "нейтральне".
В Python для цього є тип даних NoneType
, і існує лише одне значення цього типу: None
що означає "нічого".
Давайте таки переконаємось що print()
повертає те саме "нічого":
>>> r = print('hello')
hello
>>> print(r)
None
>>>
Оскільки None
є рівноправним значенням, можемо, наприклад, присвоїти його змінній:
var = None
Вищенаведений запис можна прочитати так:
змінній "var" присвоєно "нічого".
Зауважте, це не означає що змінній нічого не присвоєно, це означає що вона пов'язана з даними "нічого".