OrmaJever пишет:
ах да, использовать в функциях ключевое слово global тоже не хорошо, оно существено замедляет скрипт.
Не замедляет. Плохо его использовать потому, что это - side-effect (по сути, неожиданное поведение функции для ее внешнего окружения). Представьте себе, что у Вас есть очень нужная и полезная функция, но внутри у нее 5-6 global вот таких. Как Вы будете переносить её на другой проект? Ведь по-сути она становится жестко привязана к окружению и логике того проекта, где используется.