1

40. Как использовать глобальные переменные? Это хорошая идея?

Серия Не Ван Россум

port = 443

def change_port():

‧‧‧‧global port

‧‧‧‧port = 8080


change_port()

Хорошая ли это идея? Автор вопроса пытается вывести нас на шаблонный ответ, что конечно же, это идея плохая (он прав). Вся концепция ООП крутится вокруг иерархии, "кто на ком стоял" и "кому что можно, а что нельзя". Однако существуют случаи, когда проще использовать глобальную переменную, особенно в программе, которую ты пишешь сам от начала до конца.

Они и сами по смыслу являются глобальными, некими общими для всей программы сущностями. Например, при написании программ с GUI на QT у нас имеется одна сущность - окно программы, QMainWindow. Мы можем все эти вещи для работы сделать свойствами написанного нами класса, назовем его MyGUI. Отлично, gui = MyGUI() и теперь инстанс этого класса все равно будет использоваться глобально отовсюду, потому что как у нас было одно QMainWindow, так и осталось.

Хорошая ли это идея? В абстракции - нет, фу-фу-фу, нам нужна иерархия, инкапсуляция и вот это вот всё.

А на практике может случиться, что тебе приходится делать именно вот так и никак иначе. На паттерн "синглтон" вроде бы никто не ругается - есть сценарии, когда он нужен. И с глобальными переменными то же самое. Их следует избегать во всех возможных случаях, а в невозможных - картинно закатить глаза, и написать "global".

Это кросспост из моего Telegram-канала "Не Ван Россум", где я прямо сейчас пишу сериал "101 вопрос про Python" с описанием подводных камней, неочевидностей и загвоздок.

#сериал101, #40

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества