【问题标题】:Optional arguments in nested functions in PythonPython中嵌套函数中的可选参数
【发布时间】:2021-12-01 13:27:11
【问题描述】:

一个函数是否可以将第二个函数的一个可选参数的名称作为参数,然后调用第二个函数,并将可选参数设置为第一个函数中某个变量的值?

代码(显然不起作用)

def foo(a=1,b=2,c=3):
    d = a + b + c
    return d

def bar(variable):
    z = get_user_input()
    e = foo(variable = z)
    return e

print(bar(a))

想要的结果是 bar 调用 foo(a=z) 并打印 z+2+3 是什么。当然 Python 不知道 (a) 在这里是什么。我的猜测是我可以以某种方式引用 foo() 的参数列表,但我不知道你会如何做到这一点。

【问题讨论】:

  • 你的意思是调用bar,变量名称为字符串:print(bar('a'))?您的代码当前会引发错误

标签: python function


【解决方案1】:

不妨试试下面的代码 sn-p

def foo(a=1,b=2,c=3):
    d = a + b + c
    return d

def bar(variable: str):
    z = int(input())
    e = foo(**{variable: z})
    return e

# variable name should be defined as string
print(bar("a"))

** 解析 dict 上的所有任意参数,在本例中为 a。小心,好像传递错误的变量名(不同于abc)会导致错误。

【讨论】:

  • 正是我想要的。谢谢!
猜你喜欢
  • 2015-12-26
  • 2019-06-10
  • 2023-03-21
  • 2017-10-05
  • 2010-12-08
  • 1970-01-01
  • 2021-05-13
相关资源
最近更新 更多