0

我试图为 relativedelta 函数提供动态值,即我想relativedelta(days=1)将动态函数值分配给函数。考虑我的情况如下。我将动态获取列表如下:daysmonthsyears

Ex: 1

list = ['today', 'minus', '1', 'days']

Ex: 2

list = ['today', 'plus', '1', 'year']

Ex: 3

list = ['today', 'plus', '1', 'months']

我编写了代码来处理计算

import operator
from datetime import datetime
from datetime import date
from dateutil.relativedelta import relativedelta

operations = {
        'plus': operator.add,
        'minus': operator.sub,
    }
today = date.today()
new_date = self.operations['plus'](today, relativedelta(days=1))

# the above is some thing like [today + relativedelta(days=1)]

我想做的就像operations我想将days, months,分配yearsrelativedelta()函数,但我做不到。有什么建议的方法吗?

4

1 回答 1

1

找到了一种方法!

我们可以使用**expression调用语法将字典传递给函数,它将被扩展为关键字参数(您的**kwargs函数参数将再次捕获):

attributes = {'days': 1}
relativedelta(**attributes)
于 2020-08-25T13:20:41.200 回答