En Java, vous pouvez définir une nouvelle classe en ligne en utilisant des classes internes anonymes. Ceci est utile lorsque vous devez réécrire une seule méthode de la classe. Supposons que vous vouliez créer une sous-classe OptionParser
qui ne remplace qu'une seule méthode (par exemple exit()
). En Java, vous pouvez écrire quelque chose comme ceci:Est-ce que Python a quelque chose comme les classes internes anonymes de Java?
new OptionParser() {
public void exit() {
// body of the method
}
};
Ce morceau de code crée une classe anonyme qui va OptionParser
et passer outre que la méthode exit()
.
Il existe un idiome similaire en Python? Quel idiome est utilisé dans ces circonstances?
Ceci est le moyen ** approprié ** pour les définitions de classe en ligne/créer des classes anonymes (citation de la page de manuel citée ci-dessus: "Ceci est essentiellement une forme dynamique de l'instruction de classe"); la "réponse acceptée" devrait l'indiquer. – Vlad
Je ne comprends pas cela {"foo": lambda self: "foo"}. Est-ce censé revenir? – zakdances
Cliquez sur le lien vers les documents. "le dictionnaire de dict est l'espace de noms contenant les définitions pour le corps de la classe et devient l'attribut __dict__". Donc "foo" est le nom d'une méthode qui ne prend que "self" comme paramètre. Cette méthode arrive à retourner la chaîne "foo". –