Python Object @Property
-
20-09-2019 - |
문제
"좌표"라는 속성을 정의하는 포인트 클래스를 만들려고합니다. 그러나 그것은 내가 기대하는 것처럼 행동하지 않으며 그 이유를 알 수 없습니다.
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)
Setter가 해당 값을 설정해야하더라도 PX와 PY가 어떤 이유로 설정되지 않은 것 같습니다. 이것이 왜 그런지 아는 사람이 있습니까?
해결책
그만큼 property
방법 (및 확장에 의해 @property
데코레이터) 새 스타일의 수업이 필요합니다 즉, 하위 클래스의 클래스 object
.
예를 들어,
class Point:
해야한다
class Point(object):
또한, setter
Python 2.6에 속성 (다른 것과 함께)이 추가되었습니다.
다른 팁
객체에서 포인트를 도출하면 작동합니다.
class Point(object):
# ...
제휴하지 않습니다 StackOverflow