Maison > Article > développement back-end > Qu’est-ce que l’introspection en Python ?
Qu'est-ce que l'introspection ?
Dans la vie quotidienne, l'introspection est un acte d'auto-examen.
En programmation informatique, l'introspection fait référence à la capacité d'examiner quelque chose pour déterminer ce que c'est, ce qu'il sait et ce qu'il peut faire. L'introspection offre aux programmeurs une grande flexibilité et un grand contrôle.
Pour le dire plus simplement et directement : l'introspection signifie qu'un programme écrit dans un langage orienté objet peut connaître le type d'objet lorsqu'il est en cours d'exécution. Pour faire simple, le type d’objet peut être connu au moment de l’exécution.
Par exemple, python, buby, object-C et c++ ont tous la capacité d'introspecter. Parmi eux, c++ a la capacité d'introspection la plus faible. Il ne peut savoir que de quel type il s'agit, tandis que python peut savoir. de quel type il s'agit, et également de quelles propriétés possède-t-il.
La meilleure façon de comprendre l'introspection est à travers des exemples : Tapez introspection Voici des exemples d'introspection dans divers langages de programmation (les exemples dans ce lien sont très importants, il vous est peut-être difficile de comprendre ce qu'est l'introspection à travers le récit, mais à travers ces exemples, vous pouvez le comprendre immédiatement)
Retour à Python, les mécanismes d'introspection (utilisation de fonctions) les plus courants en Python sont : dir(), type(), hasattr() , isinstance(), grâce à ces fonctions, nous pouvons connaître le type de l'objet lorsque le programme est en cours d'exécution, déterminer si un certain attribut existe dans l'objet et accéder aux attributs de l'objet. La fonction
dir()
dir() est probablement la partie la plus célèbre du mécanisme d'introspection de Python. Il renvoie une liste triée des noms de propriété de tout objet qui lui est transmis. Si aucun objet n'est spécifié, dir() renvoie le nom dans la portée actuelle. Appliquons la fonction dir() au module de mots-clés et voyons ce qu'elle révèle :
>>> import keyword >>> dir(keyword) ['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'iskeyword', 'kwlist', 'main']
type()
La fonction type() nous aide à déterminer si l'objet est une chaîne, un entier ou un autre type d'objet. Il le fait en renvoyant un objet type, qui peut être comparé aux types définis dans le module types :
>>> type(42)<class 'int'> >>> type([])<class 'list'>
isinstance()
Un objet peut être testé à l'aide de la fonction isinstance() pour déterminer s'il s'agit d'une instance d'un type spécifique ou d'une classe personnalisée :
>>> isinstance("python", str) True
Extension de l'utilisation de l'aide dans l'introspection Python :
Ouvrez IDLE de python et entrez dans l'interpréteur python L'interpréteur python lui-même est considéré comme un module principal, puis à l'invite de l'interpréteur >>> Entrez certaines informations que nous voulons connaître, nous allons donc d'abord demander de l'aide, alors entrez help, puis entrez help(), nous entrerons dans l'utilitaire d'aide, puis suivrons les invites de mots-clés, de modules, pour comprendre les mots-clés et les modules Python qui viennent avec Python ou sont également installés et définis par nos soins. Si vous souhaitez quitter, entrez « q » et appuyez sur Entrée.
Si nous voulons connaître un objet (tous les objets en Python peuvent être considérés comme des objets), nous pouvons également demander de l'aide(), mais nous devons entrer le nom de l'objet entre parenthèses au format help (objet), par exemple help(print), puisque l'objet a trop de contenu d'introspection, certains ne collent qu'une partie du contenu.
>>> help Type help() for interactive help, or help(object) for help about object. >>> help() Welcome to Python 3.6's help utility! If this is your first time using Python, you should definitely check out the tutorial on the Internet at https://docs.python.org/3.6/tutorial/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type "quit". ... help> keywords Here is a list of the Python keywords. Enter any keyword to get more help. False def if raise None del import return True elif in try and else is while as except lambda with assert finally nonlocal yield break for not class from or continue global pass help> modules Please wait a moment while I gather a list of all available modules... PIL base64 idlelib runpy __future__ bdb idna runscript __main__ binascii idna_ssl sched _ast binhex imaplib scrolledlist _asyncio bisect imghdr search _bisect browser imp ... Enter any module name to get more help. Or, type "modules spam" to search for modules whose name or summary contain the string "spam". >>> help('print') Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.
Tutoriels recommandés : "Tutoriel Python" "Tutoriel Python"
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!