🖨️ ייצוג אובייקט כמחרוזת
שתי מתודות קסם מאפשרות לנו לקבוע איך האובייקט מוצג:
| מתודה | מתי נקראת | למי מיועדת |
|---|
__str__ | print(obj), str(obj) | משתמש קצה — קריא |
__repr__ | repr(obj), תצוגה ברשימות | מפתח — מדויק |
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f'({self.x}, {self.y})'
def __repr__(self):
return f'Point(x={self.x}, y={self.y})'
p = Point(3, 4)
print(p) # (3, 4) ← __str__
print(repr(p)) # Point(x=3, y=4) ← __repr__
points = [p, Point(1, 2)]
print(points) # [Point(x=3, y=4), Point(x=1, y=2)] ← __repr__ ברשימות!
💡 אם הגדרת רק __repr__ ולא __str__, פייתון תשתמש ב-__repr__ בשביל שניהם. ההפך לא נכון!