는 다차원 인덱싱을 지원하지 않으므로 인덱스나 슬라이스로 구성된 튜플은 에러를 발생시킨다.
12
.
6
Vector
버전 #
3
: 동적 속성 접근
Vector2d
에서
Vector
로 진화하면서
v.x
,
v.y
처럼 벡터 요소를 이름으로 접근하는 능력은
없어졌다. 이제는 벡터에 요소가 아주 많기 때문이다. 그러나 앞에 있는 요소 몇 개는
v[0]
,
v[1]
,
v[2]
대신
x
,
y
,
z
로 접근할 수 있으면 편리할 것이다.
벡터의 앞 요소 네 개를 읽는 다음과 같은 구문을 생각해 보자.
>>> v = Vector(range(10))
>>> v.x
0.0
>>> v.y, v.z, v.t
(1.0, 2.0, 3.0)
Vector2d
에서는
@property
데커레이터를 이용해서
x
와
y
에 읽기 전용 접근을 제공했다(예제
11
-
7
).
Vector
에도 네 개의 프로퍼티를 작성할 수 있지만, 번거로울 것이다.
__getattr__
()
특별 메서드를 이용하면 깔끔하게 구현할 수 있다.
속성을 찾지 못하면 인터프리터는
__getattr__()
메서드를 호출한다. 간단히 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.