重命名 **kwargs 以传递给另一个方法
Renaming **kwargs to pass in to another method
我有以下方法。我试图将一些变量传递给第一个方法,然后在将它们传递给第二个方法之前重命名它们。
def method2(**kwargs):
# Print kwargs
for key in kwargs:
print(key, kwargs[key])
def method1(**kwargs):
# Need to rename kwargs to pass in to method2 below
# Keys are method1 kwargs variables and values are method 2 kwargs variables
rename_dict = {'Val1': 'val_1', 'Val2': 'val_2', 'Val3': 'val_3'}
new_kwargs = {}
# The kwargs passed in method 1 need to their values to be set to the
# corresponding variables in the rename_dict before they are pass in method 2
method2(**new_kwargs)
method1(Val1 = 5, Val2 = 6)
# Output desired
val_1 5
val_2 6
我可以通过在第一种方法中添加一个 for 循环来做到这一点
def method2(**kwargs):
# Print kwargs
for key in kwargs:
print(key, kwargs[key])
def method1(**kwargs):
# Need to rename kwargs to pass in to method2 below
# Keys are method1 kwargs variables and values are method 2 kwargs variables
rename_dict = {'Val1': 'val_1', 'Val2': 'val_2', 'Val3': 'val_3'}
new_kwargs = {}
for key in kwargs:
new_kwargs[rename_dict[key]] = kwargs[key]
print(new_kwargs)
# The kwargs passed in method 1 need to their values to be set to the
# corresponding variables in the rename_dict before they are pass in method 2
method2(**new_kwargs)
method1(Val1 = 5, Val2 = 6)
# Output
{'val_1': 5, 'val_2': 6}
val_1 5
val_2 6
我没有意识到您可以在 python 方法中将变量名称作为字符串传递。我希望我能够帮助尝试做同样事情的人!
你可以用字典理解写得更简洁:
new_kwargs = {rename_dict[key]: value for key, value in kwargs.items()}
为了重命名字典键,您可以使用以下方法:
new_kwargs = {rename_dict[key]:value in key,value for kwargs.items()}
此外,您可以使用 items()
在 python 中迭代字典,其中 returns 元组列表(键,值),您可以直接在循环中解压它们:
def method2(**kwargs):
# Print kwargs
for key, value in kwargs.items():
print(key, value)
我有以下方法。我试图将一些变量传递给第一个方法,然后在将它们传递给第二个方法之前重命名它们。
def method2(**kwargs):
# Print kwargs
for key in kwargs:
print(key, kwargs[key])
def method1(**kwargs):
# Need to rename kwargs to pass in to method2 below
# Keys are method1 kwargs variables and values are method 2 kwargs variables
rename_dict = {'Val1': 'val_1', 'Val2': 'val_2', 'Val3': 'val_3'}
new_kwargs = {}
# The kwargs passed in method 1 need to their values to be set to the
# corresponding variables in the rename_dict before they are pass in method 2
method2(**new_kwargs)
method1(Val1 = 5, Val2 = 6)
# Output desired
val_1 5
val_2 6
我可以通过在第一种方法中添加一个 for 循环来做到这一点
def method2(**kwargs):
# Print kwargs
for key in kwargs:
print(key, kwargs[key])
def method1(**kwargs):
# Need to rename kwargs to pass in to method2 below
# Keys are method1 kwargs variables and values are method 2 kwargs variables
rename_dict = {'Val1': 'val_1', 'Val2': 'val_2', 'Val3': 'val_3'}
new_kwargs = {}
for key in kwargs:
new_kwargs[rename_dict[key]] = kwargs[key]
print(new_kwargs)
# The kwargs passed in method 1 need to their values to be set to the
# corresponding variables in the rename_dict before they are pass in method 2
method2(**new_kwargs)
method1(Val1 = 5, Val2 = 6)
# Output
{'val_1': 5, 'val_2': 6}
val_1 5
val_2 6
我没有意识到您可以在 python 方法中将变量名称作为字符串传递。我希望我能够帮助尝试做同样事情的人!
你可以用字典理解写得更简洁:
new_kwargs = {rename_dict[key]: value for key, value in kwargs.items()}
为了重命名字典键,您可以使用以下方法:
new_kwargs = {rename_dict[key]:value in key,value for kwargs.items()}
此外,您可以使用 items()
在 python 中迭代字典,其中 returns 元组列表(键,值),您可以直接在循环中解压它们:
def method2(**kwargs):
# Print kwargs
for key, value in kwargs.items():
print(key, value)