2
저는 파이썬을 배우고 있습니다. 한 가지를 얻지 못합니다.for 루프에서 __getitem__ 호출
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def __getitem__(self,index):
print "index",index
return self.items[index]
def __len__(self):
return len(self.items)
stack = Stack()
stack.push(2)
stack.push(1)
stack.push(0)
for item in stack:
print item
출력을 네 번 의 getItem라고 왜
index 0
2
index 1
1
index 2
0
index 3
:이 코드를 생각해?
실제로 내 원래 코드에는 업데이트가 있습니다. 그것은 동일합니다. –
예, 세부 사항이 잘못되었습니다. '__len __()'이 아닌'__iter __()'이됩니다. 이제 그걸 고치고있어. – kindall
우수. 이보다 더 좋은 방법을 def _iter __ (self)보다 구현하려면 : for i for self.items : yield i –