在Java中,您可以使用匿名内部类来内联定义一个新类。当您只需要重写该类的单个方法时,这非常有用。Python有类似Java的匿名内部类吗?
假设您要创建一个仅覆盖单个方法的OptionParser
的子类(例如exit()
)。在Java中,你可以写这样的事情:
new OptionParser() {
public void exit() {
// body of the method
}
};
这段代码创建一个扩展OptionParser
并覆盖只有exit()
方法的匿名类。
Python中有一个类似的习语吗?在这些情况下使用哪一个习语?
-1我要继承optparse.OptionParser()不在身边方法引用传递。 – 2008-12-10 23:47:22
在这种情况下,编写一个真正的子类有什么问题?我只是说明匿名内部类的最常见的用法。 – 2008-12-10 23:53:22
+1:匿名内部类是Java减轻复杂语法的一种方式。 Python已经有了简单的语法,并且不需要匿名类来减轻负载。 – 2008-12-11 12:32:43