Comment utiliser __slots__ dans la classe Python

Puisque Python est un langage dynamique, il n'est pas nécessaire de déclarer des variables et les variables d'instance peuvent être créées dynamiquement.

class User:
    pass


user1 = User()
user1.username = 'kaito'

Utilisez \ _ \ _ slots \ _ \ _ </ code> pour limiter la création de variables d'instance sans autorisation.

class User:
    __slots__ = ('username', 'age')

user1 = User()
user1.username = 'kaito'
user1.password = 'aaa'

Vous pouvez voir l'erreur.

      4 user1 = User()
      5 user1.username = 'kaito'
----> 6 user1.password = 'aaa'

AttributeError: 'User' object has no attribute 'password'

De plus, Python stocke les variables d'instance dans un dictionnaire, mais en définissant \ _ \ _ slots \ _ \ _ </ code>, des taples sont utilisés à la place des dictionnaires, ce qui économise de la mémoire.

Recommended Posts