Accueil Technologie
Comment Python 3.12 vous aidera à améliorer votre débogage

Comment Python 3.12 vous aidera à améliorer votre débogage

Comment Python 3.12 vous aidera à améliorer votre débogage

Python prévoit de publier la version 3.12 du langage en octobre 2023. Cette version apporte un ensemble de fonctionnalités et d’améliorations passionnantes. Son objectif est d’améliorer votre expérience de codage en offrant une plateforme plus efficace et plus puissante, vous permettant d’améliorer vos compétences en matière de codage.


1. Messages d’erreur améliorés

Python a continuellement amélioré ses messages d’erreur dans les versions récentes. La version 3.11 a introduit des messages d’erreur plus précis en indiquant les positions exactes dans les lignes.

Python 3.12 porte ces améliorations à un niveau supérieur, avec les ajouts suivants :

  • Les suggestions de modules manquants (« avez-vous oublié d’importer X ? ») englobent désormais les modules de la bibliothèque standard.
  • Amélioration des suggestions d’erreurs pour les erreurs de syntaxe courantes liées aux importations. Par exemple, si vous avez import p de m dans votre code, une erreur vous demandera si vous aviez l’intention d’écrire from m import p.
  • Les erreurs d’importation pour un module donné incluent maintenant des suggestions de l’espace de noms du module importé.
  • Erreur de nom Les suggestions intègrent désormais également soi ajoutée au nom lorsqu’elle est soulevée dans une instance de classe. Par exemple, si le nom vitesse n’est pas défini, le message d’erreur proposera self.speed comme correction potentielle. Ceci est particulièrement utile puisque l’omission de auto pour les variables d’instance est une source fréquente d’erreurs dans les instances de classe.

2. Prise en charge du profileur Linux Perf

L’outil de profilage Linux largement utilisé, perfpeut désormais fonctionner avec les programmes Python 3.12. Dans le passé, il se concentrait uniquement sur le suivi des opérations de niveau C au sein du moteur d’exécution Python.

Avec Python 3.12, vous pouvez maintenant activer perf pour collecter des détails sur les programmes Python également. Vous pouvez l’activer au niveau de l’environnement ou à l’intérieur d’un programme Python en utilisant la commande sys.activate_stack_trampoline fonction.

3. Amélioration des indications de type

Depuis son introduction dans Python 3.5, la syntaxe de typage de Python a permis aux outils de typage de détecter un large éventail d’erreurs à l’avance. Avec chaque version ultérieure, le système de type de Python a évolué pour englober une gamme plus large de cas d’utilisation, offrant des fonctionnalités de typage améliorées.

TypedDict

Python 3.12 introduit l’utilisation de TypedDict comme source d’indices pour les arguments des mots-clés dans les fonctions. Ceci utilise le générique variadique Unpack, que la version 3.11 a introduit.

Voici un exemple illustrant cette fonctionnalité :

 class Movie(TypedDict):
    name: str
    year: int

def foo(**kwargs: Unpack[Movie]) -> None: ...

Dans ce cas, la fonction foo peut recevoir des arguments de type mot-clé avec des noms et des types qui s’alignent sur le contenu du Movie TypedDict : nom du type str et année de type int.

Cette amélioration s’avère précieuse lors de l’analyse de type des fonctions qui acceptent des arguments optionnels de type mot-clé sans valeur par défaut.

Syntaxe des paramètres de type

Python 3.12 introduit une syntaxe plus concise pour spécifier les types dans les classes génériques, les fonctions ou les alias de type.

Considérons ce qui suit :

 # the old method
from typing import TypeVar
_T = TypeVar("_T")
def func(a: _T, b: _T) -> _T:
    ...
# the new type parameter method
def func[T](a: T, b: T) -> T:
    ...

Avec la nouvelle syntaxe, il n’est pas nécessaire d’importer explicitement TypeVar. Au lieu de cela, vous pouvez utiliser la fonction func[T] pour indiquer des références de type générique. Il est également possible de définir des limites de type, par exemple en spécifiant qu’un type doit faire partie d’un groupe de types. Toutefois, ces types eux-mêmes ne peuvent pas être génériques. Voici un exemple de cette syntaxe func[T: (str, int)].

4. Collecte des ordures

Dans Python 3.12, le mécanisme de collecte des déchets a changé. Auparavant, le GC s’exécutait à chaque fois qu’un objet était alloué.

Cependant, à partir de Python 3.12, le GC opère exclusivement au sein de la classe eval breaker Le mécanisme eval breaker fait partie de la boucle du bytecode Python. En d’autres termes, il s’exécute entre l’exécution d’un bytecode et le suivant.

En outre, le GC se déclenche également lorsque le mécanisme de vérification du gestionnaire de signaux de CPython est invoqué. Cet ajustement permet un ramassage périodique des ordures lors d’appels de longue durée à des extensions C en dehors du temps d’exécution.

Dévoilement de Python 3.12

Python 3.12 introduit une série de fonctionnalités et d’améliorations passionnantes qui révolutionnent l’expérience du codage. Avec des messages d’erreur améliorés, des capacités de typage améliorées, la prise en charge du Linux Perf Profiler et un ramassage optimisé des déchets, Python 3.12 vous fournit les outils nécessaires pour écrire un code de haute qualité de manière efficace. Profitez de la puissance de Python et élevez vos compétences en matière de codage à de nouveaux sommets.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x