Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
class Point:
def __init__(self, x):
self.x = x
def __repr__(self):
return f"Point({self.x})"
def __str__(self):
return f"point {self.x}"
print(Point(1), [Point(2)])point 1 [Point(2)]
- Ждать
[point 2], будтоprintвезде вызывает__str__: список показывает элементы через__repr__, поэтомуPointвнутри него печатается какPoint(2). - Ждать
Point(1), раз__repr__написан в классе первым: порядок методов не важен, для объекта, переданного напрямую,printвызывает__str__.
- Что покажет
print(Point(1)), если в классе есть только__repr__? - Что напечатает
print(f"{Point(3)!r}")и почему?