我正在尝试定义一个 RecurringInterval 类,它通过组合使用 dateutil.rrule 中的 rrule 类,此外还有属性 period 默认为 None。我试过以这种方式初始化它:
class RecurringInterval(object):
def __init__(self, *args, period=None, **kwargs):
self.period = period
self.rrule = dateutil.rrule.rrule(*args, **kwargs)
recurring_interval = RecurringInterval(dateutil.rrule.DAILY, count=1)
但是,我得到一个SyntaxError:
File "/home/kurt/dev/scratch/Furion_scheduler/recurring_interval.py", line 7
def __init__(self, *args, period=None, **kwargs):
^
SyntaxError: invalid syntax
据我所知,位置参数应该出现在关键字参数之前,所以这就是我所期望的语法;我将如何纠正它? (来自 https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists 我还不清楚)。
我尝试将 period=None 向前推进,如下所示:
class RecurringInterval(object):
def __init__(self, period=None, *args, **kwargs):
self.period = period
self.rrule = dateutil.rrule.rrule(*args, **kwargs)
但这会产生一个TypeError:
Traceback (most recent call last):
File "/home/kurt/dev/scratch/Furion_scheduler/recurring_interval.py", line 9, in <module>
recurring_interval = RecurringInterval(dateutil.rrule.DAILY, count=1)
File "/home/kurt/dev/scratch/Furion_scheduler/recurring_interval.py", line 7, in __init__
self.rrule = dateutil.rrule.rrule(*args, **kwargs)
TypeError: __init__() takes at least 2 arguments (2 given)
如何以预期的方式初始化 RecurringInterval?
请您参考如下方法:
应该是:
def __init__(self, period=None, *args, **kwargs):
