Sobes.tech
Middle

Hoe roep je elk van de methoden van klasse A aan?

sobes.tech AI

Antwoord van AI

Laten we aannemen dat we een klasse A hebben met methoden:

import time

class A:
    def what_time(self):
        return f'{time.time()}'

    @property
    def useless_getter(self):
        return self.text

    def __private_or_public(self):
        return 1

    def __str__(self):
        return self.text

    def __init__(self, text):
        self.text = text

Om elke methode aan te roepen:

  • what_time — gewone methode, wordt via een instantie aangeroepen:

    a = A('hallo')
    print(a.what_time())
    
  • useless_getter — eigenschap, wordt als attribuut zonder haakjes aangeroepen:

    print(a.useless_getter)
    
  • __private_or_public — methode met dubbele onderstreping, de naam verandert (name mangling), om aan te roepen:

    print(a._A__private_or_public())
    
  • __str__ — speciale methode, wordt automatisch aangeroepen bij conversie naar string:

    print(str(a))
    

Dus, om een privé-methode met dubbele onderstreping aan te roepen, moet je de naam met de klasse gebruiken: _A__private_or_public().