Accéder aux touches de dictée en tant qu'attributs : pièges et solutions de contournement
Accéder aux touches de dictée en utilisant la notation par points (par exemple, obj.foo) est pratique, mais ce n'est pas une fonctionnalité par défaut dans Python. Bien que vous puissiez créer une sous-classe comme AttributeDict pour y parvenir, elle comporte certaines mises en garde.
Mises en garde et pièges :
Solution alternative Utilisation des classes de données :
Depuis Python 3.7, les classes de données fournissent une version plus robuste et recommandée approche pour associer des attributs à un dictionnaire. Voici un exemple d'utilisation de classes de données :
from dataclasses import dataclass @dataclass class MyData: foo: str bar: int data = MyData("Hello", 10) print(data.foo) # Output: "Hello"
Comment fonctionne AttributeDict :
En définissant l'attribut interne dict sur une instance d'AttrDict, il écrase le dict par défaut par un autre qui présente un comportement de type dict. Cela signifie que l'accès aux attributs (par exemple, obj.foo) récupère la valeur stockée dans la clé dict 'foo'.
Conclusion :
Bien que la création d'une sous-classe comme AttributeDict puisse donner accès aux clés de dict en tant qu'attributs, il est important d'être conscient de ses mises en garde. Les classes de données offrent une alternative plus moderne et sécurisée pour associer des attributs à des dictionnaires en 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!