Chargement dynamique de classe en Python : une alternative à Class.forName() de Java
En Java, la méthode Class.forName() permet le chargement dynamique d'une classe au moment de l'exécution. Python, avec sa flexibilité inhérente, offre une approche plus simple pour accomplir cette tâche.
Chargement de classe dynamique en Python
Contrairement à Java, Python fournit une prise en charge native de l'introspection et de la dynamique chargement de classe. La fonction intégrée import peut être utilisée pour importer un module de manière dynamique, suivie de l'utilisation de la fonction getattr() pour accéder à la classe spécifique dans ce module.
Exemple de fonction
Voici un exemple de fonction qui imite la fonctionnalité de Class.forName() de Java :
<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>
Utilisation
Pour charger et instancier une classe de manière dynamique, vous pouvez utiliser la séquence d'étapes suivante :
Par exemple, le code suivant illustre l'utilisation :
<code class="python">D = get_class("datetime.datetime") assert D == datetime.datetime a = D(2010, 4, 22) assert a == datetime.datetime(2010, 4, 22, 0, 0)</code>
Considérations supplémentaires
Contrairement à Java, où la classe. La méthode forName() renvoie une ClassNotFoundException si la classe est introuvable, Python ne fournit pas d'exception spécifique pour ce cas. Au lieu de cela, la fonction import renvoie Aucun si le module ne peut pas être importé.
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!