Da Python eine dynamische Sprache ist, müssen keine Variablen deklariert werden, und Instanzvariablen können dynamisch erstellt werden.
class User:
pass
user1 = User()
user1.username = 'kaito'
Verwenden Sie \ _ \ _ slots \ _ \ _ </ code>, um die Erstellung von Instanzvariablen ohne Berechtigung einzuschränken.
class User:
__slots__ = ('username', 'age')
user1 = User()
user1.username = 'kaito'
user1.password = 'aaa'
Sie können den Fehler sehen.
4 user1 = User()
5 user1.username = 'kaito'
----> 6 user1.password = 'aaa'
AttributeError: 'User' object has no attribute 'password'
Python speichert auch Instanzvariablen in einem Wörterbuch. Durch die Definition von \ _ \ _ slots \ _ \ _ </ code> werden jedoch Taples anstelle von Wörterbüchern verwendet, wodurch Speicherplatz gespart wird.
Recommended Posts