Avant de commencer mes nouvelles fonctions il y a quelques mois, cela faisait très depuis que je n'avais pas programmé en Python.
Soit dit en passant, j'ai continué à travailler au cours des dernières années dans des rôles qui impliquaient soit du Javascript full-stack, soit principalement du Javascript avec un peu d'un autre langage (le plus récemment Go).
Donc, ça a été amusant de me dégourdir un peu les muscles dans un langage différent, surtout aussi accessible que Python.
Une fonctionnalité du langage que j'apprécie en ce moment est l'application d'arguments de mots-clés aux fonctions utilisant la propriété kw_only rendue accessible dans le décorateur @dataclass.
Cela crée un code qui ressemble à ceci :
from dataclasses import dataclass @dataclass(kw_only=True) class Person: name: str age: int city: str person1 = Person("Alice", 30, "New York")
génère une erreur, car l'utilisation de kw_only s'attend à voir quelque chose comme ce qui suit :
from dataclasses import dataclass @dataclass(kw_only=True) class Person: name: str age: int city: str = "Unknown" person1 = Person(name="Alice", age=30, city="New York")
Bien que l'erreur soit générée :
TypeError Traceback (most recent call last) Cell In[8], line 10 7 city: str = "Unknown" ---> 10 person1 = Person("Alice", 30, "New York") TypeError: Person.__init__() takes 1 positional argument but 4 were given
est "clair" dans le sens où il vous indiquera qu'il y a trop d'arguments de position fournis, si vous n'êtes pas familier avec kw_only cela peut être un peu déroutant car il semble que vous invoquez la fonction correctement.
Si vous venez d'un milieu Javascript/Typescript comme moi, ou si vous avez une expérience antérieure avec des langages comme Go ou Rust qui appliquent cela en utilisant quelque chose comme des structures où vous pouvez fournir les arguments dans l'ordre de votre choix, à condition que comme les propriétés suivent la forme de l'objet/de la structure, cela vous semblera familier et sera probablement un ajout bienvenu à votre code Python.
Ceci est particulièrement utile si vous travaillez avec un grand nombre d'arguments, dont certains peuvent être facultatifs.
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!