我确实创建了一个新的datetime.date
对象
class WorkDate(datetime.date):
pass
此WorkDate
的功能是(对此问题不重要),当您添加timedelta
对象时,它只会移至工作日日期。即,当您在星期五timedelta(1)
上添加WorkDate
时,它将在下一个星期一返回WorkDate
。
__init__
WorkDate
来创建相同的结果
x = WorkDate(2017, 8, 3)
y = WorkDate(datetime.date(2017, 8, 3))
<小时/> 我试过这个,但没有使用日期对象
进行初始化
class WorkDate(datetime.date):
def __init__(self, *args):
if len(args) == 3:
super(WorkDate, self).__init__(args[0], args[1], args[2])
elif len(args) == 1:
self.year = args[0].year
self.month = args[0].month
self.day = args[0].day
答案 0 :(得分:-1)
由于您希望支持任意数量的参数,请接受*args
。
然后,在__init__
中,将这些传递给基类的__init__
。
def __init__(*args):
super(WorkDate, self).__init__(*args)
这是Python 3的一个版本,增加了对命名(关键字)参数的支持`** kwargs':
def __init__(*args, **kwargs):
super().__init__(*args, **kwargs)