Réflexion flexible de Python : équivalente à Class.forName() de Java
Les capacités de réflexion de Python sont nettement plus polyvalentes et conviviales que celles de Java Classe.forName(). Bien qu'il n'y ait pas d'équivalent direct exact, comprendre les mécanismes de réflexion de Python vous permet d'obtenir des fonctionnalités similaires.
L'approche de réflexion de Python
La réflexion de Python utilise plusieurs techniques essentielles :
Fonction personnalisée : get_class
Pour fournir une fonctionnalité équivalente à Class.forName(), la fonction Python suivante peut être utilisée :
<code class="python">def get_class(kls): parts = kls.split('.') module = '.'.join(parts[:-1]) m = __import__(module) for comp in parts[1:]: m = getattr(m, comp) return m</code>
Exemple d'utilisation
Cette fonction permet d'obtenir une référence de classe à partir de son nom complet :
<code class="python">>>> D = get_class("datetime.datetime") >>> D <type 'datetime.datetime'> >>> D.now() datetime.datetime(2009, 1, 17, 2, 15, 58, 883000)</code>
Comment ça marche
Conclusion
La réflexion de Python offre un moyen puissant et flexible de manipuler des classes et des objets. Bien qu'il diffère de Class.forName() de Java, il offre une approche plus adaptable et plus riche en fonctionnalités pour atteindre des objectifs similaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!