アクセス方法を使用する必要があることはわかっています。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]
__repr__
datetime をサブクラス化して情報を追加し、同様の関数を記述しようとしました。
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
のに、サブクラスがアクセスできない理由を理解したいだけです。