Sobes.tech
Middle

Kā izsaukt katru no A klases metodiem?

sobes.tech AI

Atbilde no AI

Pieņemsim, mums ir klase A ar metodēm:

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

Lai izsauktu katru metodi:

  • what_time — parasta metode, izsauc caur piemēru:

    a = A('sveiki')
    print(a.what_time())
    
  • useless_getter — īpašība, izsauc kā atribūtu bez iekavām:

    print(a.useless_getter)
    
  • __private_or_public — metode ar dubultu apakšsvītru, nosaukums mainās (name mangling), lai izsauktu:

    print(a._A__private_or_public())
    
  • __str__ — īpaša metode, automātiski izsaucama, pārvēršot uz virkni:

    print(str(a))
    

Tādēļ, lai izsauktu privātu metodi ar dubultu apakšsvītru, jāizmanto ar klases nosaukumu saistīts nosaukums: _A__private_or_public().