Працюємо з функціями в python

print (mixed_function (1)) # 6

Вище ми описали три можливі випадки. Проаналізуємо кожен з них. У першому прикладі ми спробували викликати функцію, використовуючи тільки ключові аргументи. Це дало нам тільки помилку. Traceback вказує на те, що наша функція приймає, по крайней мере, один аргумент, але в прикладі було зазначено два аргументи. Що ж сталося? Справа в тому, що перший аргумент необхідний, тому що він ні на що не вказує, так що, коли ми викликаємо функцію тільки з ключовими аргументами, це викликає помилку. У другому прикладі ми викликали змішану функцію, з трьома значеннями, два з яких мають назву. Це працює, і видає нам очікуваний результат: 1 + 4 + 5 = 10. Третій приклад показує, що відбувається, якщо ми викликаємо функцію, вказуючи лише на одне значення, яке не розглядається як значення за замовчуванням. Це працює, якщо ми беремо 1, і підсумовуємо її до двох значень за замовчуванням: 2 і 3, щоб отримати результат 6! Дивно, чи не так?







* Args і ** kwargs

Ви також можете налаштувати функцію на прийом будь-якої кількості аргументів. або ключових аргументів, за допомогою особливого синтаксису. Щоб отримати нескінченну кількість аргументів. ми використовуємо * args. а щоб отримати нескінченну кількість ключових аргументів, ми використовуємо * kwargs. Самі слова "args" і "kwargs" не так важливі. Це просто скорочення. Ви можете назвати їх * lol і * omg. і вони будуть працювати таким же чином. Головне тут - це кількість зірочок. Зверніть увагу: на додаток до конвенцій * args і * kwargs. Ви, час від часу, будете бачити andkw. Давайте поглянемо на наступний приклад:







Цей код працює, так як ми вказали Пайтон зробити а - глобальної змінної. а це значить, що вона працює де-небудь в програмі. З цього випливає, що це настільки ж гарна ідея, наскільки і погана. Причина, по якій ця ідея - погана в тому, що нам стає важко сказати, коли і де змінна була визначена. Інша проблема полягає в наступному: коли ми визначаємо «а» як глобальну в одному місці, ми можемо випадково перевизначити її значення в іншому, що може викликати логічну помилку, яку не просто виправити.

Поради в написанні коду

Одна з найбільших проблем для молодих програмістів - це засвоїти правило «повторюй сам себе». Суть в тому, що ви не повинні писати один і той же код кілька разів. Коли ви це робите, ви знаєте, що шматок коду повинен йти в функцію. Одна з основних причин для цього полягає в тому, що вам, ймовірно, доведеться знову змінити цей фрагмент коду в майбутньому, і якщо він буде перебувати в кількох місцях, вам потрібно буде пам'ятати, де всі ці місця розташування І змінити їх. Копіювати і вставляти один і той же шматок коду - хороший приклад спагетті-коду. Постарайтеся уникати цього так часто, як тільки вийде. Ви будете шкодувати про це в якийсь момент або тому, що вам доведеться все це виправляти, або тому, що ви зіткнетеся з чужим кодом, з яким вам доведеться працювати і виправляти ось це ось все.

Підведемо підсумки

Тепер ви маєте ґрунтовними знаннями, які необхідні для ефективної роботи з функціями. Попрактикуйтесь в створенні простих функцій, і спробуйте звертатися до них різними способами.







Схожі статті