2
我正在使用Python 3.6並希望編寫一個擴展datatime.date
的類,並引入了一些額外的屬性和方法,我需要在我的代碼中。 問題是由於看起來太多的參數,初始化似乎不能正常工作。繼承自類(datetime.date)會導致super().__ init __(...)太多參數TypeError
下面是代碼減少到最低限度:
FORMAT__DD_MM_YYYY = "dd.mm.yyyy"
from datetime import date
class DateExtended(date):
date_string = None
date_format = None
def __init__(self, year: int, month: int, day: int, date_format: str=None):
super().__init__(year=year, month=month, day=day)
self.date_format = date_format
self.date_string = "{:02d}.{:02d}.{:04d}".format(self.day, self.month, self.year)
bla1 = DateExtended(year=2010, month=5, day=3, date_format=FORMAT__DD_MM_YYYY_DOT)
執行它導致以下錯誤:
bla1 = DateExtended(year=2010, month=5, day=3, date_format=FORMAT__DD_MM_YYYY_DOT)
TypeError: function takes at most 3 arguments (4 given)
我在做什麼錯在這裏又該如何縫?
難道是因爲date
沒有延伸object
?
側面說明:在嘗試這種解決我自己,我也寫了一個不同的類,它不從date
繼承,但僅僅是創建一個date
對象,並將其存儲作爲其屬性之一:
self.date = date(year=year, month=month, day=day)
沒有遇到任何問題。
是的,問題是'日期'是一種方法,而不是一個類。你只能用另一個類而不是方法來擴展一個類。 – campovski
@campovski:'type(date)'是''。看起來像一個類對我來說 –
Billy
@比利感謝您提出這個,但你不明白'type()'的輸出。 'date'的類型是'type'。嘗試'輸入(2)',你會得到''。 –
campovski