Python avec mot-clé

Python avec mot-clé

«En Python, le mot-clé avec le mot est utilisé pour rendre le code plus clair et plus compréhensible. Il rend les ressources communes, telles que les flux de fichiers plus faciles à gérer. Le mot-clé «avec» en python substitue une sténographie simple à un bloc de coups d'essai. Il garantit également que les ressources sont fermées immédiatement après avoir été traitée. Un cas populaire d'utilisation du mot clé «avec» est la lecture / l'écriture dans un fichier. Un gestionnaire de contexte est une méthode ou une classe qui aide les utilisateurs avec des mots clés. Un gestionnaire de contexte vous permet d'ouvrir et de fermer les ressources au besoin. Considérez où l'utilisation du mot-clé avec le mot-clé nettoie le code dans les exemples suivants."

Exemple 1: Gestion des fichiers sans le mot-clé «avec»

Premièrement, nous avons montré les deux exemples de gestion de fichiers sans le
Mot-clé «avec». Ici, nous pouvons simplement ouvrir le fichier My_file en mode écriture «W.”Avec la méthode d'écriture; Nous avons inséré le texte à l'intérieur du fichier. Le fichier est fermé en invoquant la méthode étroite.

Vous pouvez découvrir que le texte est incorporé à l'intérieur du My_file.

Il y a un deuxième exemple de gestion du fichier avec le bloc de couple d'essai.

Le script ci-dessus a la sortie suivante.

Exemple 2: Gestion des fichiers avec le mot-clé «avec»

Maintenant, dans l'exemple suivant Snap, utilisez le mot-clé «avec» pour la gestion des fichiers.

Il n'est pas nécessaire d'appeler des fichiers en dehors des deux premières implémentations. Lors de l'utilisation du mot-clé «avec», close () est appelé. La déclaration «avec» garantit que les ressources sont obtenues et relâchées correctement. Pendant le fichier, il y a une exception. La fonction écrite () dans la première approche peut interdire que le fichier se fermait correctement, ce qui entraîne diverses erreurs dans le code, car de nombreuses modifications dans les fichiers ne fonctionnent pas correctement jusqu'à ce que le fichier soit clôturé correctement. C'est ainsi que le mot-clé avec nous permet d'écrire dans le fichier. Le texte du fichier est affiché à l'intérieur du My_file.

La deuxième solution dans l'exemple précédent gère toutes les exceptions, mais l'utilisation du mot-clé «avec» rend le code beaucoup plus concis et clair. En conséquence, la déclaration aide à éviter les problèmes et s'échappe en confirmant qu'un objet est correctement abandonné lorsque le code qui l'utilise est entièrement effectué. Le mot-clé avec est couramment utilisé avec les flux de fichiers, comme démontré ci-dessus, ainsi que les verrous, les prises, les sous-processus, Telnet et d'autres types de connexions.

Exemple 3: Manipulation de fichiers définie par l'utilisateur avec le mot-clé «avec»

Il n'y a rien d'inhabituel sur Open () qui le rend adapté à une utilisation avec le mot-clé «avec», car la même capacité peut être trouvée dans les objets définis par l'utilisateur. En utilisant un mot-clé «avec» dans vos objets, vous ne laisserez jamais de ressource ouverte. Les procédures __enter __ () et __Exit __ () dans les opérations d'objet sont tout ce qui est nécessaire pour utiliser le mot-clé «avec» dans les objets définis par l'utilisateur. Jetez un œil au code en dessous pour plus d'informations.

Regardons le code mentionné ci-dessus. La fonction objet () de MessageWriter est immédiatement après le mot clé «avec», comme vous pouvez le voir. Python crée un objet Messagewriter puis exécute la méthode __enter __ () dès que le programme atteint la zone du mot-clé «avec». Dans cette méthode __enter __ (), spécifiez la ressource à utiliser dans l'objet. Le descripteur de la ressource obtenue doit toujours être renvoyé par cette méthode __enter __ ().

Le texte est stocké dans le my_file3.Txt ici par le mot-clé Python «avec».

Exemple 4: Utilisation du package ContextLib pour la gestion des fichiers avec le mot-clé «avec»

Le système d'exploitation fournit ces poignées pour accéder aux ressources nécessaires. Ici, le descripteur de la ressource de flux de fichiers est déposé dans le bloc de code suivant.

La technique __enter __ () génère et renvoie un descripteur de fichier dans l'échantillon de messagerie-rédacteur mentionné ci-dessus. La méthode Entrée () est renvoyée par un descripteur de fichiers appelé un fichier dans cet exemple. À l'intérieur de la déclaration «avec» se trouve la section du code qui utilise la ressource acquise. La procédure __exit __ () est prise en compte lorsque le programme à l'intérieur du corps «avec» a été exécuté. Dans la méthode __Exit __ (), toutes les ressources recueillies sont abandonnées. Avec des objets définis par l'utilisateur, nous utilisons le mot clé «avec» de cette manière.

Gestionnaire de contexte:

Le gestionnaire de contexte fait référence à l'interface des opérations __enter __ () et __Exit __ () qui permettent le mot-clé «avec» dans les objets définis par l'utilisateur.

Le gestionnaire de contexte basé sur les classes susmentionné n'est pas la seule approche pour activer le mot-clé «avec» dans les objets définis par l'utilisateur. Le module ContextLib étend l'interface fondamentale du gestionnaire de contexte avec quelques abstractions supplémentaires. À l'aide du module ContextLib, le rédacteur de messages d'objet peut être mis à jour par le gestionnaire de contexte.

La fonction Open File () est une méthode de générateur dans cet échantillon de code en raison de la déclaration générale de rendement dans sa définition.

Lorsque la fonction Open File () est utilisée, un descripteur de propriété nommé fichier est créé. L'appelant est ensuite attribué ce descripteur de ressources, qui est représenté ci-dessus par la variable mon fichier. Le contrôle du programme revient à la méthode Open File () après l'exécution du programme à l'intérieur de la section avec avec. La méthode Open File () reprend son exécution après l'instruction de rendement et effectue le code qui le suit. Cette section de code se produit juste après l'énoncé de rendement et publie les ressources qui ont été acquises. @ContextManager est décorateur dans ce cas.

En interne, l'ancienne version basée sur la classe des gestionnaires de contexte et la nouvelle implémentation basée sur un générateur sont identiques. Bien que ce dernier semble plus lisible, il nécessite une compréhension des générateurs, des décorateurs et des rendements.

Avec l'aide du Contextlib, nous avons réussi à stocker le dossier dans le My_file4.txt avec le mot-clé «avec» comme suit:

Conclusion

Pour l'instant, nous avons vu comment la déclaration «avec» gère les exceptions intelligemment. Le mot clé «avec» aide également à la fermeture efficace du gestionnaire de contexte, qui aurait pu être laissé ouvert lors de la programmation. Le mot-clé avec un substitut pour les instructions d'essai / enfin d'erreur qui sont souvent utilisées. Nous avons montré quelques instances d'utilisation du mot-clé «avec» pour la gestion des fichiers.