Python 在for循环中调用函数/类方法

Python 在for循环中调用函数/类方法,python,class,testing,methods,Python,Class,Testing,Methods,我正在开发一些类,对于测试过程来说,能够在for循环中运行类方法将非常有用。我正在添加方法并更改它们的名称,我希望在运行类进行测试的文件中自动更改这些方法 我使用下面的函数来获取需要自动运行的方法列表(在本例中,我删除了一些其他条件语句,以确保我只运行某些需要测试且只有self作为参数的方法) 是否可以使用返回的列表“方法”在for循环中运行类方法 或者有没有其他方法可以确保我可以在testingrunning文件中运行我的类方法,而不必更改或添加我在类中更改的内容 谢谢 看起来您需要getat

我正在开发一些类,对于测试过程来说,能够在for循环中运行类方法将非常有用。我正在添加方法并更改它们的名称,我希望在运行类进行测试的文件中自动更改这些方法

我使用下面的函数来获取需要自动运行的方法列表(在本例中,我删除了一些其他条件语句,以确保我只运行某些需要测试且只有self作为参数的方法)

是否可以使用返回的列表“方法”在for循环中运行类方法

或者有没有其他方法可以确保我可以在testingrunning文件中运行我的类方法,而不必更改或添加我在类中更改的内容


谢谢

看起来您需要
getattr(对象,名称[,默认])

作为旁注:我不确定动态生成要测试的方法列表是否是一个好主意(在我看来,它更像是一个反模式)——现在,如果没有整个项目的上下文,很难说出来,所以请恕我直言;)

def get_class_methods(class_to_get_methods_from):
    import inspect
    methods = []
    for name, type in (inspect.getmembers(class_to_get_methods_from)):
        if 'method' in str(type) and str(name).startswith('_') == False:
            methods.append(name)
    return methods
class Foo(object):
    def bar(self):
        print("bar({})".format(self))


f = Foo()
method = getattr(f, "bar")
method()