python - __init__ method that takes multiple arguments -
this question has answer here:
i did create new datetime.date object
class workdate(datetime.date): pass the functionality of workdate is(not important question) when add timedelta object move weekday date. ie when add timedelta(1) on friday dated workdate return next monday dated workdate.
how can
__init__ workdate 1 of these 2 method create same result x = workdate(2017, 8, 3) y = workdate(datetime.date(2017, 8, 3)) did try not working initialization date object
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
since want support number of arguments, accept *args .
then, in __init__, pass these __init__ of base class.
def __init__(*args): super(workdate, self).__init__(*args) here's version python 3, added support named (keyword) arguments `**kwargs':
def __init__(*args, **kwargs): super().__init__(*args, **kwargs)
Comments
Post a Comment