gpt4 book ai didi

python - 在 Python 中使用字符串调用函数

转载 作者:IT老高 更新时间:2023-10-28 20:29:39 35 4
gpt4 key购买 nike

前几天我在网上搜索,发现一篇关于python字典的有趣文章。这是关于使用字典中的键来调用函数。在那篇文章中,作者定义了一些函数,然后是一个与函数名称完全相同的字典。然后他可以从用户那里获取一个输入参数并调用相同的方法(比如实现 case break)在那之后,我意识到同样的事情,但不知何故不同。我想知道如何实现这一点。如果我有一个功能:

def fullName( name = "noName", family = "noFamily" ):
return name += family

现在如果我有这样的字符串:

myString = "fullName( name = 'Joe', family = 'Brand' )"

有没有办法执行这个查询并得到结果:JoeBrand
例如,我记得我们可能会给 exec() 语句一个字符串,它会为我们做这件事。但我不确定这种特殊情况,也不知道 Python 中的有效方法。而且我将非常感谢帮助我如何处理该函数的返回值,例如在我的情况下,我如何打印该函数返回的全名?

最佳答案

这并不能完全回答你的问题,但也许它仍然有帮助:

如前所述,应尽可能避免使用 eval。 imo 更好的方法是使用字典解包。这也非常动态且不易出错。

例子:

def fullName(name = "noName", family = "noFamily"):
return name + family

functionList = {'fullName': fullName}

function = 'fullName'
parameters = {'name': 'Foo', 'family': 'Bar'}

print functionList[function](**parameters)
# prints FooBar

parameters = {'name': 'Foo'}
print functionList[function](**parameters)
# prints FoonoFamily

关于python - 在 Python 中使用字符串调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4131864/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com