Я знаю, что должениспользовать методы доступа. Я вижу в модуле datetime
, что класс datetime
наследуется от даты.
class datetime(date):
<some other code here....>
self = date.__new__(cls, year, month, day)
self._hour = hour
self._minute = minute
self._second = second
self._microsecond = microsecond
self._tzinfo = tzinfo
return self
Я также вижу, что datetime может получить доступ к членам date, как в __repr__
:
def __repr__(self):
"""Convert to formal string, for repr()."""
L = [self._year, self._month, self._day, # These are never zero
self._hour, self._minute, self._second, self._microsecond]
Я попытался создать подкласс datetime, чтобы добавить к нему некоторую информацию, а затем написать аналогичный __repr__
function:
def __repr__(self):
"""Convert to formal string, for repr()."""
L = [self._year, self._month, self._day, # These are never zero
self._hour, self._minute, self._second, self._microsecond,
self._latitude, self._longitude]
Отладчик пожаловался, что self._year не существует. (Однако self.year
работает.)
Я знаю, что должениспользовать функцию доступа. Я просто хочу понять, почему datetime
может получить доступ к закрытым переменным date
, но мой подкласс не может.