如何在Python函数定义中将变量值作为关键字参数名使用
你可以通过Python的字典关键字解包语法实现动态传入参数名的需求,具体实现代码如下:
def _read(self, x): # 以x的实际值为键构造参数字典 filter_params = {x: self.y} # 用**解包字典作为filter_by的关键字参数 return self.query.filter_by(**filter_params)
如果需要更简洁的写法,也可以直接在调用时构造字典解包:
def _read(self, x): return self.query.filter_by(**{x: self.y})
原理解释
Python中的**语法可以将字典中的键值对拆解为函数的关键字参数,字典的键会被作为关键字参数的参数名,字典的值会作为对应参数的取值,刚好匹配你需要将参数x的实际值作为关键字参数名的需求。
举个实际调用的例子:当你调用_read(x="username")时,上述代码的执行效果等价于self.query.filter_by(username=self.y)。
内容的提问来源于stack exchange,提问作者user17507778
相关产品推荐
相关产品推荐

