En Java puede definir una nueva clase en línea utilizando clases internas anónimas. Esto es útil cuando necesita reescribir solo un método de la clase.¿Tiene Python algo así como clases internas anónimas de Java?
Supongamos que desea crear una subclase de OptionParser
que anule solo un único método (por ejemplo, exit()
). En Java se puede escribir algo como esto:
new OptionParser() {
public void exit() {
// body of the method
}
};
Esta pieza de código crea una clase anónima que se extiende OptionParser
y anular sólo el método exit()
.
¿Hay un modismo similar en Python? ¿Qué idioma se usa en estas circunstancias?
Esta es la forma ** correcta ** de incorporar definiciones de clase/crear clases anónimas (cita de la página del manual citada anteriormente: "Esta es esencialmente una forma dinámica de la declaración de clase"); la "respuesta aceptada" debería señalarlo. – Vlad
No entiendo esto {"foo": lambda self: "foo"}. ¿Se supone que regresará? – zakdances
Haga clic en el enlace a los documentos. "el diccionario dict es el espacio de nombres que contiene las definiciones para el cuerpo de la clase y se convierte en el atributo __dict__". Entonces "foo" es el nombre de un método que toma solo "self" como parámetro. Ese método pasa a devolver la cadena "foo". –