Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python-klasse-slots

Python-klasse-slots zijn een functie die niet veel programmeurs kennen. In een sleufklasse definiëren we expliciet de velden die onze klasse mag hebben met behulp van de magische veldnaam __slots__ . Dit heeft enkele voordelen:

  • Objecten die met de klas zijn gemaakt, nemen iets minder geheugen in beslag
  • Het is sneller om toegang te krijgen tot klasseattributen
  • Je kunt niet willekeurig nieuwe attributen toevoegen aan objecten van een sleufklasse

Hier is een voorbeeld van hoe u een sleufklasse definieert:

>>> class Card:
...     __slots__ = 'rank', 'suite'
...     def __init__(self, rank, suite):
...             self.rank = rank
...             self.suite = suite
... 
>>> qh = Card('queen', 'hearts')

Voor mij is het grootste voordeel dat je niet willekeurig nieuwe attributen aan een sleufklasse kunt toevoegen. Het kan kostbare fouten voorkomen! Om te demonstreren:een typfout bij het toewijzen van een attribuut aan een sleufklasse zal een fout veroorzaken in plaats van dat Python stilzwijgend een nieuw attribuut maakt.

Voor kleine klassen zonder complexe overerving kan het gebruik van slots een voordeel zijn. Vooral wanneer u veel instanties van een dergelijke klasse moet maken, kunnen de besparingen in geheugen en snellere toegang tot attributen een verschil maken.

Tot slot, voor de zekerheid, je kunt deze techniek ook combineren met dataklassen!


Python

  1. Python-gegevenstypen
  2. Python-operators
  3. Python pass-instructie
  4. Python-functieargumenten
  5. Python-woordenboek
  6. Aangepaste Python-uitzonderingen
  7. Objectgeoriënteerd programmeren in Python
  8. Python-overerving
  9. Python-iterators
  10. Python-sluitingen
  11. Python datetime