J'ai un script où je fais des trucs magiques pour charger dynamiquement un module, et instancier la première classe trouvée dans le module. Mais je ne peux plus utiliser types.ClassType
en Python 3. Quelle est la bonne façon de le faire maintenant?Qu'est-il arrivé à types.ClassType dans python 3?
12
A
Répondre
14
I figured it out. Il semble que les classes sont de type "type". Voici un exemple de la façon de faire la distinction entre les classes et les autres objets lors de l'exécution.
>>> class C: pass
...
>>> type(C)
<class 'type'>
>>> isinstance(C, type)
True
>>> isinstance('string', type)
False
5
Il a été utilisé pour classic classes. En Python 3, ils sont partis. Je suppose que vous pouvez utiliser quelque chose comme:
issubclass(ClassName, object)
Questions connexes
- 1. Qu'est-il arrivé à android.provider.Telephony?
- 2. Qu'est-il arrivé à NUnit?
- 3. Quoi de neuf dans Python 3.x?
- 4. Python 2 et 3 dans Emacs
- 5. Qu'est-il arrivé à la méthode ReportingService.Render()
- 6. WebRequest.GetResponse() ..... Qu'est-il arrivé?
- 7. Qu'est-il arrivé à SetAttemptedValue dans ASP.NET MVC RC?
- 8. Comment écrire des données binaires dans stdout dans python 3?
- 9. Une base de données pour python 3?
- 10. Fichier d'E/S dans l'API Python 3 C
- 11. Python 3 unittest simule l'entrée de l'utilisateur
- 12. Qu'est-il arrivé à mes liaisons de projet VS Team?
- 13. Comment utiliser les objets COM dans Python 3.x?
- 14. La tempête Python 3 est-elle compatible?
- 15. L'analyse des expats en python 3
- 16. Ecriture d'applications Cocoa en Python 3
- 17. Qu'est-ce qui est arrivé à Trimpath Junction Javascript Framework?
- 18. Qu'est-ce qui est arrivé à filterContext.Cancel (ASP.NET MVC)
- 19. Quelqu'un sait ce qui est arrivé à javaspec.org?
- 20. Qu'est-il arrivé au menu contextuel dans mon application console?
- 21. Qu'est-il arrivé aux gestionnaires (ASHX) dans ASP.NET 3.5
- 22. Comment faire pour mettre à jour une ancienne extension C pour Python 2.x à Python 3.x
- 23. PersistentSet dans ZODB 3
- 24. Quand devrais-je commencer à penser au passage à Python 3?
- 25. Qu'est-il arrivé à Html.ActionLink <TController> dans ASP.NET MVC?
- 26. Qu'est-il arrivé à la classe BufferedImage dans Java ME 6?
- 27. Qu'est-ce qui est arrivé à l'éditeur visuel XSD dans Visual Studio 2008?
- 28. Qu'est-il arrivé au site Subsonic CMS/Starter
- 29. Conversion de 2,5 comparaisons d'octets à 3
- 30. Activation de la sortie de débogage pour python 3 urllib
Merci! J'ai essayé d'utiliser 'type (C) is type', qui a fonctionné pour les classes simples, mais pas quand C utilise une métaclasse. 'isinstance (C, type)', comme vous l'avez écrit, renvoie toujours 'True' dans ce cas, cependant. – goodmami