Это может быть глупый вопрос, но я не понимаю в Python, как мы можем использовать объект, который мы не определили или не импортировали.
Рассмотрим следующий пример, используя Python datetime module:
from datetime import date
date1 = date(2019,1,1)
date2 = date(2019,1,5)
type(date2-date1) #<class 'datetime.timedelta'>
type(date2) #<class 'datetime.date'>
Тогда date2-date1
относится к классу timedelta
, даже если мы не импортировали его.
(я мог бы также подготовить другие примеры, гдемы получаем объекты, даже если мы их не определили.)
Как это может быть?
Должен ли я думать об этих новых объектах, которые всплывают просто как фрагменты в памяти, которые возвращаются другими функциями, которые, даже если мы их не определили, содержат достаточно "в себе" информации, чтобыИнтерпретатор Python может осмысленно применять type()
и другие функции к ним?