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

Python-使用模块的名称(字符串)调用模块的函数

平光明
2023-03-14
问题内容

在Python程序中,给定带有函数名称的字符串的最佳方法是什么。例如,假设我有一个模块foo,我有一个内容为的字符串"bar"。最好的通话方式是foo.bar()什么?

我需要获取函数的返回值,这就是为什么我不只是使用eval。我想出了如何通过使用eval定义一个返回该函数调用结果的temp函数来执行此操作的方法,但是我希望有一种更优雅的方法来执行此操作。


问题答案:

假设模块foo与方法bar

import foo
method_to_call = getattr(foo, 'bar')
result = method_to_call()

你可以将第2行和第3行缩短为:

result = getattr(foo, 'bar')()

如果这对你的用例更有意义。

你可以通过getattr这种方式在类实例绑定方法,模块级方法,类方法…上使用清单。



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

  • 问题内容: 我正在编写一个以命令作为参数的Python应用程序,例如: 我希望应用程序是可扩展的,也就是说,能够添加实现新命令的新模块而不必更改主应用程序源。这棵树看起来像: 因此,我希望应用程序在运行时找到可用的命令模块并执行相应的命令模块。 Python定义了函数,该函数使用一个字符串作为模块名称: 该函数导入模块名称,可能使用给定的全局变量和局部变量来确定如何在包上下文中解释该名称。from

  • 本文向大家介绍Python的string模块中的Template类字符串模板用法,包括了Python的string模块中的Template类字符串模板用法的使用技巧和注意事项,需要的朋友参考一下 string.Template() string.Template()内添加替换的字符, 使用"$"符号, 或 在字符串内, 使用"${}"; 调用时使用string.substitute(dict)函数

  • 问题内容: 假设我有一个包含模块的软件包: 并且这些模块需要引用彼此包含的功能。似乎我的模块遇到了问题,因为有一个同名的标准模块。 例如,在我的模块同时需要我和标准python 模块的情况下,我会遇到麻烦,因为解释器会在程序包内部查找并找到我的模块,然后再遇到标准模块。 有没有办法解决?这是不可以的情况,并且模块名称不能重复使用吗? 有关封装哲学的任何解决方案和意见在这里都将很有用。 问题答案:

  • 本文向大家介绍Python字符串hashlib加密模块使用案例,包括了Python字符串hashlib加密模块使用案例的使用技巧和注意事项,需要的朋友参考一下 主要用于对字符串的加密,最常用的为MD5加密: 如果要避免撞库的行为,可以加盐将加密数值改为更加复杂的,这样破译起来更加不容易。  案例: 说明:用户输入新建的用户名和密码,以MD5加密的形式存入文件中。再让用户输入用户名密码进行匹配。 以

  • 问题内容: 我正在看一位同事写的一些代码,她在require语句中使用该符号。这是这些文件之一的第一行: 当我尝试运行此代码时,出现错误: 坦率地说,我的目录中没有需要识别的东西!我似乎讨厌这里发生的一些魔术。 我所能猜测的是,这是我尚未接触到的一些晦涩的npm或Node技巧,或者也许是我没有得到其他一些暗黑的配置技巧。任何信息都值得赞赏,即使这只是对require的工作方式的解释。 其他想法:主