Я питаюсь понять ООП Python, и остановился на операторах перегрузки методов. Код:
class Point3D:
def __init__(self, x, y, z):
self._x = x
self._y = y
self._z = z
def getMofe(self):
return f“{Point3D.__getGop(self._x)}, {Point3D.__getGop(self._y)}, {Point3D.__getGop(self._z)}.”
@staticmethod
def __getGop(x):
return x
def getitem(self, item):
if item == ‘x’:
return {Point3D.__getGop(self._x)}
elif item == ‘y’:
return self._y
elif item == ‘z’:
return self._z
return ‘Неверный формат данных’
def setitem(self, key, value):
pass
pt = Point3D(4, 8, 2)
print(pt.getMofe())
print(pt)
Вывод:
4, 8, 2.
Traceback (most recent call last):
File “<string>”, line 29, in <module>
TypeError: ‘Point3D’ object is not subscriptable
Первый раз пишу в форум. Простите если что-то не так…