
- •Міністерство освіти і науки україни
- •Укладачі: Романюк а. Б., канд. Техн. Наук, ст. Викладач
- •1.2 Функції накопичення
- •Функція використовує рекурсію – техніку яка буде розглядатися в подальшому. Перестановки слів у наборах слів корисно використовувати при створенні даних для тестування граматик.
- •1.3 Функції вищого рівня
- •1.4 Зазначені (поіменовані) аргументи.
- •2. Розробка програми
- •2.1 Структура модуля в Python
- •2.2 Багатомодульні програми
- •2.3 Помилки
- •2.4 Техніка налагодження (зневаджування) програм
- •3. Розробка алгоритму програми
- •3.1 Рекурсія
- •3.2 Динамічне програмування
- •4. Приклади бібліотек Python
- •4.1 Matplotlib
- •4.2 NetworkX
- •4.3 Csv
- •4.4 NumPy
- •4.5 Інші бібліотеки
- •Порядок виконання роботи
- •Зміст звіту
- •Інтернет посилання
- •Методичні вказівки
- •Укладачі: Романюк Андрій Богданович
1.4 Зазначені (поіменовані) аргументи.
У випадку коли функція має багато параметрів то досить легко заплутатись в їх порядку при виклику функції. В мові Python реалізовано можливість явно визначати відповідність між значннями і іменами аргументів при виклику функції. Ключі дозволяють встановити відповідність за іменами а не за позиціями. До параметрів можна звертатися за іменами (ключами) і присвоювати їм значення по замовчуванню. Застосовуючи такий підхід параметри функції можуть бути записані в довільному порядку, а також і опущені у випадку визначення їх значень по замовчуванню.
|
При спільному використанні двох типів параметрів потрібно пересвідчитись, що спочатку йдуть звичайні параметри а потім поіменовані параметри. Така послідовність необхідна, бо звичайні параметри визначаються позицією, яку вони займають у списку аргументів функції. Можна визначити функцію з довільними неіменованими (звичайними), та іменованими (ключами) параметрами і доступатися до них через список аргументів *args (список ) та через ключі у словнику**kwargs(словник).
|
Коли *args зустрічається, як параметр функції то він відповідає всім неіменованим параметрам функції. Наступний приклад також ілюструє цю особливість синтаксисуPython. Функція zip() може мати довільну кількість аргументів#1. Використання імені змінної *song демонструє, аналогічний результат з використанням імені змінної*args в попередньому прикладі.
|
Зрозуміло, що *song зручніше записати ніжsong[0], song[1], song[2], і отримати еквівалентний результат.
Наступний приклад демонструє використання поіменованих аргументів (ключів) при визначенні функції, а також три різні способи виклику цієї функції:
|
Прихований ефект, який забезпечує використання поіменованих аргументів, це їх опціональність ( необов’язковість ). Буде отримано однаковий результат і при виклику функції: freq_words('ch01.rst', min=4),і при виклику freq_words('ch01.rst', 4). Значенняnum=10 зберігається по замовчуванню. Іншй приклад опціональних аргументів функції, це використання прапорців (позначок). Оновлена версія попередньої функції виводить інформацію про хід свого виконання , якщо встановлений прапорець verbose (спробуйте також присвоїти значення прапорцяverbose=True):
|