Як кажуть інші, звичайно, це все-таки чиста функція.
Однак поговоримо про проблеми дизайну. Ви маєте право спробувати зробити щось, щоб зберегти код DRY, поставивши значення лише один раз у місці. Крім того, я вважаю, що також слід враховувати рівень зв'язку, який є відповідним.
Використання функції дає вам більшу гнучкість для зміни реалізації, тобто, що підхід до функції пропонує більш зв'язане з'єднання, ніж глобальна змінна.
Питання в тому, потрібен він чи ні?
Якщо споживачі та постачальник перебувають у одному модулі, а постачальник є приватним модулем, важко стверджувати, що цей рівень вільної зв'язку є необхідним через те, що якщо постачальник вимагає оновлення від приватної змінної до а приватний метод, простий рефакторинг в межах модуля може бути застосований до споживачів одночасно. Використання методу / функції, перш ніж вам дійсно потрібно, може потрапити під YAGNI.
Навіть якщо споживачі (постачальники) та постачальник перебувають у різних модулях, все ж модулі розбиті разом (наприклад, ви використовуєте міні-модуль, щоб модулі споживачів і постачальника знаходилися в одному файлі), YAGNI також може застосовуватися.
З іншого боку, якщо, наприклад, виробник перебуває в бібліотеці або пакеті або модулі API, які розроблені окремо від споживачів (ів), то використання функції може бути доречним. У цьому випадку ми повинні дивитися на довговічність API та такі принципи, як OCP.
(З іншого боку, якщо ваш код має значні розміри, я б рекомендував використовувати модулі з полями та методами, а не глобальними змінними та функціями.)