我知道我应该使用访问方法。我在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__
函数:
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
但我的子类不能。