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

Параметри і аргументи функцій

Викликаючи функцію, ми можемо передавати їй наступні типи аргументів:

  • позиційні аргументи (positional arguments)
  • іменовані аргументи (keyword arguments)
  • опціональні аргументи (default arguments)
  • аргумети довільної довжини (variable-length argumens)

Позиційні аргументи

Коли викликаємо функцію фактичні параметри заміщують формальні у тому порядку, у якому їх вказано.

>>> def product_info(name, color, price):
...     print('Product:', name)
...     print('Color:', color)
...     print('Price:', price)
...
>>> product_info('Pen', 'blue', 2)
Product: Pen
Color: blue
Price: 2
>>>
>>> product_info(2, 'Pen', 'blue')
Product: 2
Color: Pen
Price: blue
>>>

Іменовані аргументи

Ми маємо можливість змінити порядок слідування аргументів. Для цього при вказанні значень аргументів необхідно вказувати також ї імена відповідних параметрів функції у вигляді:

параметр=значення

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

>>> product_info(price=2, name='Pen', color='blue')
Product: Pen
Color: blue
Price: 2
>>>

При викликах функцій можна одночасно використовувати як позиційні, так і іменовані аргументи. Спочатку треба вказати певну кількість позиційних аргументів, які будуть заміщати відповідні їм по порядку параметри, а потім для усіх аргументів, що залишились, вказуємо іменовані аргументи у довільному порядку:

>>> product_info('Pen', price=2, color='blue')
Product: Pen
Color: blue
Price: 2
>>>

У прикладі вище перший аргумент буде відповідати параметру функції name, інші ж аргументи ми вказали з іменами параметрів.

Спроба вказати позиційний аргумент після іменованих призведе до відповідної помилки:

>>> product_info(price=2, color='blue', 'Pen')
  File "<stdin>", line 1
SyntaxError: positional argument follows keyword argument
>>>
Back to top