Sobes.tech
Middle

Kako pozvati svaki od metoda klase A?

sobes.tech АИ

Одговор од АИ

Pretpostavimo da imamo klasu A sa metodama:

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

Da bismo pozvali svaku metodu:

  • what_time — obična metoda, poziva se putem instance:

    a = A('zdravo')
    print(a.what_time())
    
  • useless_getter — svojstvo, poziva se kao atribut bez zagrada:

    print(a.useless_getter)
    
  • __private_or_public — metoda sa dvostrukim donjim crtom, ime se menja (name mangling), da bi se pozvalo:

    print(a._A__private_or_public())
    
  • __str__ — posebna metoda, automatski se poziva pri pretvaranju u string:

    print(str(a))
    

Dakle, za pozivanje privatne metode sa dvostrukim donjim crtom, treba koristiti ime sa imenom klase: _A__private_or_public().