Code: Select all
class Thing:
__slots__ = 'a', 'b'
thing = Thing()
thing.c = 'hello' # error
< /code>
Dies funktioniert jedoch nicht, wenn eine Klasse von einer anderen slotless-Klasse erbt: < /p>
class Whatever:
pass
class Thing(Whatever):
__slots__ = 'a', 'b'
thing = Thing()
thing.c = 'hello' # ok
In diesem Fall bin ich mir nicht sicher, ob er hier gilt. Python hat keine Zugriffsmodifikatoren, sodass Objektdaten bereits zu exponiert sind. Ferner, ohne __SLOTS __ Python -Objekte sind ziemlich promiskuitiv beim Hinzufügen zusätzlicher Attribute, und ich bin mir nicht sicher, ob dies wirklich Teil der beabsichtigten Diskussion ist.