我可以在python中列出方法吗?

时间:2014-03-27 09:42:22

标签: python list methods

我所拥有的是一个类的每个实例一个不同的方法。所以我想要的是当我创建该类的新内容以某种方式能够选择该实例将调用的方法。我是一个完整的新手python,我想知道我是否可以有一个方法列表和每个实例从这个列表中调用一个特定的。即使可能吗?

我做了一些搜索并找到http://docs.python.org/2/library/inspect.html(检查模块),但我感到困惑。

1 个答案:

答案 0 :(得分:2)

在python中,函数是第一类对象。因此,您可以直接传递函数作为参数。如果已定义函数f(x),g(x),h(x),则可以创建类方法

def set_function(self, external_function):
    self.F = external_function

然后,您可以使用object.F(x),就像它已在类中定义一样。

然而,属于具有不同方法的同一类的对象是糟糕的设计。如果同一类的对象具有不同的行为,则它们可能应该属于不同的类。更好的方法是子类化原始类,在子类中定义不同的函数,然后实例化相应的对象。