从Python中存储的字符串调用函数

这个问题在这里已经有了答案:

  • 通过使用其名称(字符串)调用模块的功能10个答案

  • 你可以这样做 :

    eval(input("What function do you want to call? ") + '()')
    

    使用一个字典映射名称的功能。

    call_dict = {
        'foo': foo,
        'bar': bar
    }
    call_dict[callfunction]()
    

    在Python中使用命令模式很常见。 首先将所有函数移动到一个类中,并为它们指定名称,该名称的前缀未在输入中使用。 然后使用getattr()来查找正确的函数并调用它。

    class Commands():
       def cmd_foo(self):
           print("Foo")
    
       def callFunction(self, name):
           fn = getattr(self, 'cmd_'+name, None)
           if fn is not None:
                fn()
    

    与Daniel的call_dict相比,这有两个优点:您不必再次列出函数的名称,也不必再次列出可调用函数。

    'cmd_'前缀用于确保您可以在该类中使用其他方法,但仍可精确控制哪些方法可直接调用。

    链接地址: http://www.djcxy.com/p/55167.html

    上一篇: Call a function from a stored string in Python

    下一篇: Python Call Function from String