Coding for KidsCoding for Kids
Креативні РівніВикликиПосібник для Вчителів
Голосувати за функції
Поглиблений курс розробки на Python
Розділ
>
Рівень

Поглиблені функції
Замикання

Мета

Регулюйте подачу води на фермі, налаштовуючи та використовуючи замикання.

Є чотири водні баки, призначені для зрошення навколишніх земель, настав час їх перемкнути, щоб переконатися, що правильна кількість води розподіляється у потрібні місця. Для цього ми можемо значно полегшити завдання, використовуючи замикання.

Замикання — це вкладені функції, призначені для інкапсуляції даних. Це зменшує кількість змінних, які потрібно використовувати, і приховує дані всередині функції, тому ними не можна керувати зовнішніми засобами, іншими словами, функція закривається.

Щоб регулювати воду в баках, ми створимо вкладену функцію, що працює як множник. Ця функція працює так само, як цикл: зовнішня функція під назвою multiplier_of() приймає аргумент, який множиться на аргумент її внутрішньої функції під назвою multiplier().

# Nested Function def multiplier_of(n): def multiplier(number): return number*n return multiplier

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

# Set up Closure that multiplies any number by 2 multiply_by_2 = multiplier_of(2) # Uses closure to display a number on screen player.speak( multiply_by_2(4) ) # The number displayed is 8, the formula is [2 x 4 = 8]

Вище наведене замикання називається multiply_by_2() і використовує створену нами вкладену функцію з встановленим аргументом, а саме 2, що є числом, на яке замикання налаштоване множити. Внаслідок цього будь-яке число, яке ми додамо як аргумент, буде помножене на два (2), і цю властивість не можна змінити через замикання.

Переходячи до регулювання водних баків, налаштуйте три (3) замикання: multiply_by_2, multiply_by_3 і multiply_by_5. Налаштуйте кожне з них вручну, використовуючи той самий формат, що і в попередньому прикладі, наприклад: multiply_by_2 = multiplier_of(2).

У цьому рівні є константа-словник під назвою tanks, який як індекси містить шість (6) кольорів: `“red

Книга Коду