在Python列表中附加类的所有方法

时间:2019-11-14 15:40:41

标签: python class methods

我想将一个类的所有方法添加到列表中,以便可以使用它们从该列表中调用这些方法。我试过了 inspect.getmembers(class),但我不知道如何使用它来调用函数或子类

1 个答案:

答案 0 :(得分:1)

假设您有Abc班:

class Abc:
    def user_function(arg):
        print(arg)

您可以使用dir(Abc)获取所有方法。通过调用它,您还将获得魔术方法(__init____str__等)。因此您可以像这样过滤它:

methods_names = [method for method in dir(Abc) if not method.startswith('__')]

如果要调用它,可以使用getattr

first_method = getattr(Abc, methods_names[0])

请注意,first_method将包含两个参数:selfarg,其中self可以是Abc类的实例。 所以:

instance = Abc()
first_method(instance, 'Hello world')