개념적으로 반복자와 getter를 통해 배열로 가득 찬 배열에 액세스 할 수있는 python 개체가 있습니다. 그러나 배열의 각 요소의 정확한 값을 계산하는 것은 비용이 많이 들기 때문에 배열의 각 슬롯 내용에 대해 프록시 개체를 반환 한 다음 실제로 필요할 때 실제로 값을 계산합니다.lazily 문자열 값을 제공합니다.
즉, 내가 이것을 쓰고 싶습니다
bar = foo.get(10) # just returns a proxy
baz = bar # increase proxy reference
l = [baz] # actually increase proxy reference again.
print baz # ooh, actually need the value. Calculate it only the fly.
v = '%s' % bar # I need the value here again
if bar is None: # I need the value here again
print 'x'
if bar: # I need the value here again
print 'x'
for i in bar: # I need the value here again
print i
를 C++에서 필자는 역 참조 연산자 ... 어떤 생각을 너무 많이하려고 것인가?
- 이 실제로 (모든 가능한 쓰임새를 다루려고 다음과 같은 경우
나는 각각의 경우에 대해, 내가 특정 파이썬 '매직'기능 (
print baz
에 대한 같은__str__
)를 오버로드 할 수 있음을 이해하지만 난 궁금해 파이썬 마법 기능) - 사용자 정의 형식을 반환 것 파이썬에서이
죄송하지만 지금은 질문이 명확하지 않은 것이 분명합니다. 나는 그것을 편집했다. – mathieu
@mathieu : 그러면 질문이 분명하지 않고 파이썬으로 좀 더 놀 필요가 있습니다. 커스텀 클래스가 여전히 존재하지만 마법의'__str__' 훅은 여전히 인쇄의 가치를 제공하는 방법입니다. 사용자 정의 클래스이기 때문에 사용자가 지정한 API를 통해 인스턴스의 다른 데이터에 계속 액세스 할 수 있습니다. –