python – 如何动态调用类中的方法使用方法名分配给变量

前端之家收集整理的这篇文章主要介绍了python – 如何动态调用类中的方法使用方法名分配给变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个问题在这里已经有一个答案:> Calling a function of a module from a string with the function’s name in Python10个
class MyClass:

    def __init__(self,i):
          self.i = i

    def get(self):
          func_name = 'function' + self.i
          self.func_name() # <-- this does NOT work.

    def function1(self):
          //do something

    def function2(self):
          //do something

我得到的错误
TypeError:’str’对象不可调用

有人可以帮助这个.我已经尝试了很多排列和组合,但没有用! (注:’self.func_name’也不行)

解决方法

def get(self):
      def func_not_found(): # just in case we dont have the function
         print "No Function "+self.i+" Found!"
      func_name = 'function' + self.i
      func = getattr(self,func_name,func_not_found) 
      func() # <-- this should work!

猜你在找的Python相关文章