try:
cache
except NameError:
cache = {}
На первый взгляд, нет смысла писать что-то подобное. Переменная
cache однозначно вызовет NameError в начале выполнения модуля, так как она ещё не была определена.Однако ситуация меняется, если модуль перезагружается. В этом случае словарь, содержащий все атрибуты модуля, переиспользуется, что даёт возможность модулю сохранить значения из предыдущей версии.
Если модуль изначально спроектирован с учётом перезагрузки, он может использовать эту особенность. Например, приведённый выше код позволяет сохранить кэш между перезагрузками модуля.
👉@BookPython