如何从字符串参数中获取关键字参数?

时间:2017-09-05 02:49:26

标签: python string parameters arguments

我希望从字符串输入field_name。这在Python中是否可能?

earliest = Model.objects.filter(
    field_name__year=latest_datetime.year,
    field_name__month=latest_datetime.month,
    field_name__day=latest_datetime.day
).order_by(field_name)[0]

我希望这个功能会给你一点但是解释我想要的东西。

def cool_function(field_name_from_param):
    earliest = Model.objects.filter(
        field_name_from_param__year=latest_datetime.year,
        field_name_from_param__month=latest_datetime.month,
        field_name_from_param__day=latest_datetime.day
    ).order_by(field_name_from_param)[0]

1 个答案:

答案 0 :(得分:0)

您可以为argument unpacking构建dict并使用**,例如:

def cool_function(field_name_from_param):
    earliest = Model.objects.filter(
        **{field_name_from_param+"__year": latest_datetime.year,
           field_name_from_param+"__month": latest_datetime.month,
           field_name_from_param+"__day": latest_datetime.day}
    ).order_by(field_name_from_param)[0]