"좌표"라는 속성을 정의하는 포인트 클래스를 만들려고합니다. 그러나 예상대로 행동하지 않아 그 이유를 알 수 없습니다.Python 개체 @property
class Point:
def __init__(self, coord=None):
self.x = coord[0]
self.y = coord[1]
@property
def coordinate(self):
return (self.x, self.y)
@coordinate.setter
def coordinate(self, value):
self.x = value[0]
self.y = value[1]
p = Point((0,0))
p.coordinate = (1,2)
>>> p.x
0
>>> p.y
0
>>> p.coordinate
(1, 2)
세터 그 값을 설정 "해야한다"비록 그 p.x 및 p.y 어떤 이유로 설정되지 않습니다 보인다. 왜이 사람이 누군지 알아?
파이썬 2.6+를 사용하고 있습니까? –
오브젝트를 인스턴스화 한 직후에'p.coordinate'를 변경하려고 시도하기 전에 어떻게됩니까? –
이것은 old-style-classes-vs-new-style-classes 클래스이며, property() 나 IDE가 그것을 잡을 것이라고 예상 할 수 있습니다. – smci