首页 > 解决方案 > 赋予命名变量以动态运行

问题描述

我有函数变量的字典。

x = {"reverberance":20,"hf_damping":10}

现在我想给这个功能的内容x

def reverb(self,
       reverberance=50,
       hf_damping=50,
       room_scale=100,
       stereo_depth=100,
       pre_delay=20,
       wet_gain=0,
       wet_only=False):

我现在所做的是,但它不起作用,因为可能x[key]必须转换为str?(但如果不是我可以连接)

x = {"reverberance":20,"hf_damping":10}
arr = []
for key in x:
    arr.append(key + "=" + str(x[key]))


reverb(",".join(arr))

标签: python

解决方案


您可以直接解压缩 kwargs:

x = {"reverberance":20,"hf_damping":10}

def reverb(
       reverberance=50,
       hf_damping=50,
       room_scale=100,
       stereo_depth=100,
       pre_delay=20,
       wet_gain=0,
       wet_only=False):
    return reverberance, hf_damping

reverb(**x) # returns (20,10)

推荐阅读