Мне удалось обойти сеттер, используя следующий код:
t = TrajetGPS()
# will call t.getPoints(), which will return the list by reference
# we can then modify it at will, bypassing the setter
points = t.points
points.append(PointGPS(0, 0, 0))
points.append(PointGPS(1, 1, 1))
print(t) # will show : Points : (0, 0, 0) (1, 1, 1)
TrajetGPS()
определяется как простой класс, содержащий список PointGPS
, определенный с помощью points = property(getPoints, setPoints)
, а PointGPS()
содержит 3 координаты (широта, долгота, высота). Но все это здесь не имеет значения.
Это нормально, я могу обойти сеттер без предупреждения?
Python предназначен для начинающих, но это не очень удобно, так как он может очень быстро вставить искаженные данные в список (не зная!).