python - 我可以用命名参数作为变量在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)
但我想要这样的东西让它工作
我不知道我将从哪种类型中获取用户,但我想要基于变量的命名参数
解决方案
您可以使用运算符将关键字参数字典传递给函数**
。字典的键是函数中的参数名称。
在这种情况下,可能是:
get_user_by(**{username_type: username})
如果变量username_type
具有值'email'
,则用户名将get_user_by
作为关键字参数接收email
。
推荐阅读
- asp.net - 编译错误:C:\Users\mhomes\AppData\Local\Temp\8\Temporary ASP.NET Files\ 行:90
- list - 如何使用以下技术合并两个列表
- python - 如何将增量后缀添加到文件列表
- flutter - 特定时间本地通知
- php - 如何使用 Ajax、PHP 和 jQuery 将 multipart/form-data 发送到服务器?
- python - 将模块下载到本地文件夹后,如何在没有 pip 的情况下安装 python 模块
- data-structures - 如何在地图中分组?
- python - 如何在不使用正则表达式的情况下检查字符串是否具有某些字符
- ios - 无法通过 Firebase 记录自定义事件,但会记录预定义事件
- node.js - 如何获取使用 Nodejs express 发送请求的客户端的公共 IP 地址?