Задать вопрос
@DanielWorker
Junior Python Developer

Считается ли использование global переменной говнокодом?

Занимаюсь фрилансом и когда делал проект использовал что то вроде data = {ключ: значение} и импортировал в некоторые функции как global data. Когда сдавал проект этот момент сказали переделать без объяснений. Почему же?
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
ScriptKiddo
@ScriptKiddo
Да. Глобальные переменные - антипаттерн во многих, если не всех, языках программирования
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@pcdesign
Глобальные переменные нормальный инструмент. Например. вот из официальной документации flask. Как пример использования глобальной переменной для хранения подключения к базе данных.
from flask import g

def get_db():
    if 'db' not in g:
        g.db = connect_to_database()

    return g.db

https://flask.palletsprojects.com/en/2.0.x/appcontext/

Сказать, что глобальные переменные - антипатерн, это все равно как сказать, что топор - зло. Топором Раскольников зарубил бабушку ... Если кто-то используя глобальные переменные стреляет себе в ногу, ну это проблема стреляющего.
Ответ написан
@DanielWorker Автор вопроса
Junior Python Developer
Данные слова полностью закрывают вопрос:
Глобальные переменные - это антипаттерн

И в частности сам создатель языка Python высказывался, что оператор global был введён в язык как маркер плохого кода.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы