当前位置: 首页 > 面试题库 >

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

乌杰
2023-03-14
问题内容

几天前,我在网上搜索时,发现了一篇有关python词典的有趣文章。这是关于使用字典中的键来调用函数。在那篇文章中,作者定义了一些函数,然后定义了一个字典,其键与函数名完全相同。然后,他可以从用户那里获得输入参数并调用相同的方法(类似于实现大小写中断)。此后,我意识到同样的事情,但有所不同。我想知道如何实现这一目标。如果我有一个功能:

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

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

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

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


问题答案:

您可以使用eval():

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

但是要当心,eval()被许多人认为是 邪恶 的。



 类似资料:
  • 问题内容: 有没有一种方法可以使用新的格式语法来格式化函数调用中的字符串?例如: 因此它在字符串 内部* 调用函数函数,而不是在格式化函数中作为参数。 * 编辑:这是另一个示例,可能会更好地显示我的挫败感,这就是我想要的: 这是我要避免的事情: 问题答案: Python 3.6添加了文字字符串插值,并以前缀编写。请参阅PEP 0498-文字字符串插值 。 这允许一个人写 应当注意,这些不是实际的字

  • 问题内容: 在PHP中,HEREDOC字符串声明对于输出html块确实非常有用。您可以通过在变量前面加上$来解析变量,但是对于更复杂的语法(如$ var [2] [3]),则必须将表达式放在{}中。 在PHP 5中,这 是 可能实际上使{}一个HEREDOC字符串中括号内的函数调用,但你必须要经过一些工作。函数名称本身必须存储在变量中,并且必须像动态命名函数一样调用它。例如: 如您所见,这不仅比以

  • 问题内容: 我有一个str对象,例如:。我想从此字符串运行安装方法。例如,当我打电话时它将呼叫。有什么办法吗? 问题答案: 如果在课程中,则可以使用getattr: 或者它是一个函数:

  • 问题内容: 在Python程序中,给定带有函数名称的字符串的最佳方法是什么。例如,假设我有一个模块,我有一个内容为的字符串。最好的通话方式是什么? 我需要获取函数的返回值,这就是为什么我不只是使用。我想出了如何通过使用eval定义一个返回该函数调用结果的函数来执行此操作的方法,但是我希望有一种更优雅的方法来执行此操作。 问题答案: 假设模块与方法: 你可以将第2行和第3行缩短为: 如果这对你的用例

  • 本文向大家介绍python中根据字符串调用函数的实现方法,包括了python中根据字符串调用函数的实现方法的使用技巧和注意事项,需要的朋友参考一下 在python中可以根据字符串来调用函数: 1、使用getattr从字符串来调用函数 在多进程中,可能传递过来的是一个字符串,那么我怎么来调用一个已经存在的函数呢,主要就是使用到getattr函数的作用,这个函数就是在使用字符串得到这个字符串对应的函数

  • 问题内容: 我正在使用Angularjs开发应用程序,并在页面中添加使用。我想在上面动态添加的内容中调用一个函数。我的html和脚本如下。 的HTML Java脚本 jsfiddle 点击这里查看 问题答案: 这有点棘手,因为将只插入普通的旧html而不用麻烦对其进行编译(因此html中的任何指令都不会被angular处理。 诀窍是在模板更改时找到一种编译方法。例如,您可以创建一个执行此操作的指令