Что выведет этот код и при каком обращении появится ключ? Проверено на CPython 3.12.14 и 3.13.1.
from collections import defaultdict
counts = defaultdict(int)
print(counts.get("api"))
print(dict(counts))
print(counts["api"])
print(dict(counts))
Результат: None, затем пустой словарь, затем 0 и словарь {'api': 0}. Метод get не вызывает __missing__ и не обращается к фабрике int. Доступ через квадратные скобки вызывает __getitem__, а при отсутствии ключа — __missing__. Фабрика создаёт 0, значение записывается в словарь.
Документация
Библиотека собеса по Python