首页 > 解决方案 > 我可以用命名参数作为变量在python中调用函数吗?

问题描述

例如

username_type = 'email'

def get_user_by(email=None, username=None):
    if email:
        return user.get_by_email(email)
    elif username:
        return user.get_by_username(username)

get_user_by(username_type = username)

当然这条线行不通 get_user_by(username_type = username) 但我想要这样的东西让它工作

我不知道我将从哪种类型中获取用户,但我想要基于变量的命名参数

标签: pythonpython-3.xfunction

解决方案


您可以使用运算符将​​关键字参数字典传递给函数**。字典的键是函数中的参数名称。

在这种情况下,可能是:

get_user_by(**{username_type: username})

如果变量username_type具有值'email',则用户名将get_user_by作为关键字参数接收email


推荐阅读