2014-09-08 3 views
2

간단한 [0, 20, 0, 20, 0, 20]list으로 변환 할 수 없습니다.클래스를 파이썬 목록으로 변환

코드 :

geo = hou.pwd().geometry() 

print geo.boundingBox() 
print type(geo.boundingBox()) 

출력 :

[0, 20, 0, 20, 0, 20] 
<class 'hou.BoundingBox'> 

테스트 :

: 나는 다음과 같은 오류가

list(geo.boundingBox()) 
len(geo.boundingBox()) 

object BoundingBox is not iterable. 
Object of type 'BoundingBox' has no len() 

관련 질문을 모두 읽었지만 문제가 해결되지 않았습니다.

+3

클래스는 원하는 것을 표시하기 위해 __str __() 및 __repr __() 메서드를 재정의 할 수 있습니다. 목록처럼 보이기 때문에 표시된다는 의미는 아닙니다. –

+0

'hou.BoundingBox'의 속성은 무엇입니까? 'len (geo.boundingBox())'(또는 유사)를 호출하여 크기를 얻을 수 있습니까? 색인을 생성 할 수 있습니까 ('geo.boundingBox() [1]')? – inspectorG4dget

+0

@GregS 예, 당신이 무슨 뜻인지 알고, 나는 문자열에서 목록에 시도했지만 고전을 : [ ','0 ',', ',' ','2 ','0 ',' 0 ','0 ','0 ',', ',' ','2 ','0 ',' ','0 ',' ] '] – Rosenthal

답변

2

Vector3은 항목 액세스 방법을 구현하기 때문에 list으로 변환 될 수 있습니다.

list(geo.boundingBox().minvec()) + list(geo.boundingBox().maxvec()) 
+0

왜 이것이 효과가 있는지 설명해 주시겠습니까? 하나의 회선 코드 응답은 권장되지 않습니다. –

+0

이것은 boundingbox를 먼저 호출해야만 작동합니다. – Rosenthal

+0

geo.boundingBox(). maxvec() – Rosenthal