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

发布于 2021-02-02 23:24:28

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

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

关注者
0
被浏览
255
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    假设模块foo与方法bar

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

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

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看