파이썬 큐 front, rear 값이 안나와요
조회수 1119회
class MyQueue : def init(self, max_size): self.max_size = max_size self.front = -1 self.rear = 0 self.myList = []
def enqueue(self, item):
if self.isFull():
return None
else :
self.myList.append(item)
self.rear = self.rear + 1
def dequeue(self):
if self.isEmpty():
return None
else:
self.rear = self.rear - 1
return self.myList.pop(0)
def isEmpty(self):
if (self.rear > 0):
return False
else:
return True
def isFull(self):
if (self.max_size <= self.rear):
return True
else:
return False
def front(self):
if self.isEmpty():
return None
else:
return self.myList[self.front]
def rear(self):
if self.isEmpty():
return None
else:
return self.myList[self.rear]
q = MyQueue(5) print(q.max_size) print(q.isEmpty()) q.enqueue(100) q.enqueue(200) q.enqueue(300) q.enqueue(400) q.enqueue(500) print(q.front()) #오류부분 print(q.rear()) #오류부분 print(q.isFull()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue())
이렇게 하면 front랑 rear만 오류가 나오네요. 맨 앞의 값이랑 맨 뒤의 값을 받으려면 어떻게 해야 할까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
front와 rear를 함수로 한번, 변수로 한번 정의하셨네요.
__init__
을 보시면self.front = -1
이라 되어있는데요. 아래에는def front(self):
라고 front를 변수로 적어두었습니다.따라서 작성자께서는 front를 함수로 쓰려고 했으나, python은 front를 int로 생각해 오류가 나는것이지요.
변수와 함수 이름을 서로 다른것으로 바꾸면 문제가 해결될겁니다.
댓글 입력