Sobes.tech
Junior — Middle

Leg uit wat het verschil is tussen self en cls in de context van klasse-methoden

sobes.tech AI

Antwoord van AI

In Python zijn self en cls conventies voor de eerste parameter van methoden, maar ze hebben verschillende doeleinden:

  • self is een verwijzing naar een specifiek exemplaar van de klasse. Het wordt gebruikt in gewone instantie-methoden om toegang te krijgen tot de attributen en methoden van dat object.
  • cls is een verwijzing naar de klasse zelf, niet naar een instantie. Het wordt gebruikt in klasse-methoden (aangeduid met de decorateur @classmethod) om met de klasse in zijn geheel te werken, bijvoorbeeld om nieuwe instanties te maken of eigenschappen van de klasse te wijzigen.

Voorbeeld:

class MyClass:
    class_var = 0

    def __init__(self, value):
        self.instance_var = value

    def instance_method(self):
        print(f'Instantie variabele: {self.instance_var}')

    @classmethod
    def class_method(cls):
        print(f'Klasse variabele: {cls.class_var}')

obj = MyClass(10)
obj.instance_method()  # roept een instantie-methode aan
MyClass.class_method()  # roept een klasse-methode aan