Découvrez les fonctionnalités intéressantes de Python 3.12 qui faciliteront la vie de vos développeurs.

Python prévoit de publier la version 3.12 du langage en octobre 2023. Cette version apporte un éventail 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 puissante, vous permettant d'améliorer vos compétences en codage.

1. Messages d'erreur améliorés

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

Python 3.12 fait passer ces améliorations au 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
    instagram viewer
    importer p de m dans votre code, une erreur vous demandera si vous aviez l'intention d'écrire de m importer p.
  • Les erreurs d'importation pour un module donné incluent désormais des suggestions de l'espace de noms du module importé.
  • NomErreur les suggestions intègrent désormais également soi ajouté au nom lorsqu'il est déclenché dans une instance de classe. Par exemple, si le nom vitesse n'est pas défini, le message d'erreur proposera auto.vitesse comme correction potentielle. Ceci est particulièrement utile car omettre soi par exemple, les variables d'instance sont une source courante d'erreurs dans les instances de classe.

2. Prise en charge du profileur de performances Linux

L'outil de profilage Linux largement utilisé, perf, peuvent 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 dans le runtime Python.

Avec Python 3.12, vous pouvez désormais activer perf pour collecter également des détails sur les programmes Python. Vous pouvez l'activer au niveau de l'environnement ou dans un programme Python à l'aide de la commande sys.activate_stack_trampoline fonction.

3. Améliorations de l'indication de type

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

TypedDict

Python 3.12 introduit le utilisation de TypedDicts comme source pour indiquer les arguments de mots-clés dans les fonctions. Cela utilise le générique variadique Unpack, introduit dans la version 3.11.

Voici un exemple illustrant cette fonctionnalité :

classeFilm(TypedDict):
nom: str
année: entier

définitivementfou(**kwargs: Déballer[Film]) -> Aucun: ...

Dans ce cas, la fonction fou peut recevoir des arguments de mots-clés avec des noms et des types qui s'alignent sur le contenu de Movie TypedDict: nom de type chaîne et année de type entier.

Cette amélioration s'avère utile pour les fonctions d'indication de type qui acceptent des arguments facultatifs uniquement à base de mots clés sans valeurs par défaut.

Type Paramètre Syntaxe

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

Considérer ce qui suit:

# l'ancienne méthode
depuis dactylographie importer TypeVar
_T = TypeVar("_T")
définitivementfonction(a: _T, b: _T) -> _T :
...
# la nouvelle méthode de paramètre de type
définitivementfonction[J](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 le fonction[T] syntaxe pour indiquer des références de type génériques. 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. Cependant, ces types eux-mêmes ne peuvent pas être génériques. Un exemple de cette syntaxe est func[T: (chaîne, entier)].

4. Collecte des ordures

Dans Python 3.12, le mécanisme de récupération de place (GC) a changé. Auparavant, le GC s'exécutait chaque fois qu'un objet était alloué.

Cependant, à partir de Python 3.12, le GC fonctionne exclusivement dans le disjoncteur d'évaluation mécanisme dans la boucle de bytecode Python. En d'autres termes, il s'exécute entre l'exécution d'un bytecode et le suivant.

De plus, le GC se déclenche également lorsque le mécanisme de vérification du gestionnaire de signaux de CPython est invoqué. Cet ajustement active la récupération de place périodique pendant les appels de longue durée aux extensions C en dehors de l'exécution.

Dévoilement de Python 3.12

Python 3.12 introduit une gamme de fonctionnalités et d'améliorations intéressantes, révolutionnant l'expérience de codage pour vous. Avec des messages d'erreur améliorés, des capacités de frappe améliorées, la prise en charge de Linux Perf Profiler et ramasse-miettes optimisé, Python 3.12 vous fournit les outils pour écrire du code de haute qualité efficacement. Adoptez la puissance de Python et élevez vos compétences de codage vers de nouveaux sommets.