我正在使用Python计划库并为一周中的不同日期设置计划。
schedule.every().monday.at(x).do(doADayofWeekTask)
schedule.every().tuesday.at(x).do(doADayofWeekTask)
我想用一个代替上面两个调用:
schedule.every().blah.at(x).do(doADayofWeekTask)
其中blah
可以是星期一,星期二,星期三等等。
答案 0 :(得分:2)
我认为任何体面的调度库都有一个很好的方法来动态地执行此操作,可能是这样的:
schedule.every('monday').at(x).do(doADayofWeekTask)
但如果没有,您可以随时使用getattr
动态访问属性:
getattr(schedule.every(), 'monday').at(x).do(doADayofWeekTask)
这通常是一个坏主意......但如果你不得不绕着别人的图书馆工作,这样就不会以更好的方式做到这一点,这就是为什么“一般”并不意味着“总是”的完美例子”
无论哪种方式,你都可以,例如,循环你想要的日子:
for day in 'monday', 'tuesday', 'wednesday', 'thursday':
getattr(schedule.every(), day).at(x).do(doADayofWeekTask)
当然,在打字时,用“未来的圣诞节机器人鬼魂”的声音来吟唱“星期一星期四星期四星期四”是至关重要的。数千年前,在我们所知道的Python诞生之前,有Guido。