Sobes.tech
Middle

Как да извикаме всеки от методите на класа A?

sobes.tech AI

Отговор от AI

Да предположим, че имаме клас A с методи:

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

За да извикате всеки метод:

  • what_time — обикновен метод, извиква се чрез екземпляр:

    a = A('здравей')
    print(a.what_time())
    
  • useless_getter — свойство, се извиква като атрибут без скоби:

    print(a.useless_getter)
    
  • __private_or_public — метод с двойно подчертаване, името се променя (name mangling), за да се извика:

    print(a._A__private_or_public())
    
  • __str__ — специален метод, се извиква автоматично при преобразуване в низ:

    print(str(a))
    

Следователно, за да се извика частен метод с двойно подчертаване, трябва да се използва името с името на класа: _A__private_or_public().