Sobes.tech
Junior — Middle
79

Python-да __str__ және __repr__ әдістерінің мақсаты неде және олар қалай ерекшеленеді?

Сұралған компаниялар
СБЕР РоботыСБЕР Роботы

AI-дан жауап

sobes.tech AI

Python-да __str__ және __repr__ әдістері объектінің жолдық көрінісін алу үшін қолданылады, бірақ олардың әрқайсысының мақсаты әртүрлі:

  • __repr__ объектінің ресми жолдық көрінісін алуға арналған, ол ең ақпаратты болуы керек және мүмкін болса, объектіні қайта құру үшін пайдалануға болатын (мысалы, eval арқылы). Егер бұл мүмкін болмаса, пайдалы ақпаратпен жол қайтарылады.

  • __str__ пайдаланушыға ыңғайлы, "әдемі" көрінісін алуға арналған.

Егер __str__ анықталмаса, Python __repr__-ды резервтік нұсқа ретінде пайдаланады.

Мысал:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return f"Point({self.x}, {self.y})"

    def __str__(self):
        return f"({self.x}, {self.y})"

p = Point(1, 2)
print(repr(p))  # Нәтиже: Point(1, 2)
print(str(p))   # Нәтиже: (1, 2)

Осылайша, __repr__ — әзірлеушілер мен қателерді түзету үшін, __str__ — пайдаланушылар үшін арналған.