Для чего используется переменная __cached__?

Переменная __cached__ автоматически инициализируется в любом модуле.

В любом произвольном модуле:

print(__cached__) # None

__cached__ = 'Hello World!'
print(__cached__) # Hello World!

В чем смысл предварительной инициализации этой переменной с помощью объекта NoneType? Если это зарезервированное ключевое слово, то зачем позволять пользователям изменять его?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
543
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

__cached__ — атрибут модуля, связанный с импортом. Из документации:

[__cached__] — это путь к любой скомпилированной версии кода (например, байт-компилированному файлу). Для установки этого атрибута файл не обязательно должен существовать; путь может просто указывать на место, где будет существовать скомпилированный файл.

Что касается того, почему это None - я думаю, это потому, что этот атрибут должен существовать, но, поскольку в вашем случае нет скомпилированной версии кода, он просто установлен на None, что означает «неприменимо».

Другие вопросы по теме

Отфильтровать список кортежей для исключения из другого списка кортежей, который содержит
Как сохранить имена столбцов во фрейме данных, когда я пытаюсь удалить все строки, которые не начинаются с определенных имен?
Что происходит, когда я динамически добавляю/удаляю параметры во время исследования Optuna?
Встреча с начальными объявлениями цикла for разрешена только в ошибке режима C99, когда я пытаюсь установить mysqlclient через pip
Как использовать метод рефакторинга с функциями в коде Python?
Стандартизируйте функции для расчета коэффициентов инфляции дисперсии
Django - добавить контекст к запросу, который будет использоваться представлением
Гистограмма с накоплением на основе столбца Pandas
Выберите строки таблицы в соответствии с идентификатором, который находится в JSON в столбце таблицы
Захват ссылок из всплывающего окна Google Maps