Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 pass 문 완벽 가이드: 사용법과 실전 예제

파이썬(Python)의 pass 문은 플레이스홀더(placeholder) 역할을 하는 키워드입니다. for문이나 if문처럼 코드가 아직 작성되지 않은 빈 블록에서 구문 오류(syntax error)를 방지하는 데 사용됩니다. 파이썬 인터프리터는 pass 문이 작성된 코드 영역을 '비어 있는' 상태로 인식하고 그대로 넘어갑니다.


pass 문이 필요한 이유

클래스, 함수, 프로시저 등에 임시 자리표시자를 넣어야 하는 상황이 종종 발생합니다. 예를 들어 대규모 프로그램을 작성하면서 for 반복문을 미리 만들어 두고 싶지만, 다른 코드를 먼저 작성해야 해서 아직 반복문 내부를 구현할 수 없는 경우를 생각해 볼 수 있습니다.

바로 이럴 때 pass 문이 유용합니다. pass 문은 함수, 클래스, 반복문 등 향후 구현할 코드 블록의 자리를 임시로 채워 주는 역할을 합니다.

이 글에서는 파이썬에서 pass 문을 사용하는 방법을 살펴보고, 실제 프로그램에서 활용되는 몇 가지 예제도 함께 다룹니다.

파이썬 pass 문이란?

pass 문은 해당 코드 영역이 비어 있음을 파이썬에 알려주되, 구문 오류가 발생하지 않도록 합니다. 파이썬 인터프리터는 pass 문을 읽고 처리하지만, 프로그램의 실행 흐름에는 어떠한 영향도 주지 않습니다.

pass 문의 문법은 다음과 같습니다.

pass

pass 문은 별도의 인수나 변수를 받지 않습니다. return 키워드처럼 독립적으로 사용되는 키워드입니다.

pass 문에는 엄격한 사용 규칙이 정해져 있지 않지만, 다음과 같은 경우에는 문법적으로 반드시 필요합니다.

  • 빈 클래스나 빈 함수를 정의할 때
  • try except 블록에서 특정 코드를 건너뛸 때
  • 반복문 안에서 코드 실행을 건너뛸 때

이러한 코드 블록은 비워 둘 수 없습니다. 블록 안에 아무 코드도 작성하지 않으면 파이썬은 구문 오류를 반환합니다.

pass 문 활용 예제

이제 파이썬 pass 문의 실제 사용 예제를 살펴보겠습니다.

예제 1: 은행 계좌 클래스

예금 계좌와 당좌 계좌 정보를 저장하는 프로그램을 개발한다고 가정해 보겠습니다. 계좌 정보의 구조는 파이썬 클래스로 정의합니다.

당좌 계좌(CheckingAccount) 클래스부터 작업하기로 하고, 예금 계좌(SavingsAccount) 클래스는 나중에 작업하기로 했다면, 깜빡하지 않도록 자리표시자를 남겨 둘 수 있습니다.

다음과 같이 SavingsAccount 클래스에 pass 문을 추가하면 됩니다. 당좌 계좌 클래스 작업을 마친 후, pass 문을 제거하고 실제 코드를 채워 넣으면 됩니다.

class CheckingAccount(name):
	def __init__(self, name):
		self.name = name

class SavingsAccount:
	pass

이 코드를 실행하면 CheckingAccount와 SavingsAccount 클래스가 모두 생성됩니다. 다만 SavingsAccount 클래스는 아직 아무 기능이 없으며, pass 키워드가 나중에 코드를 추가할 때까지 그 자리를 지켜 줍니다.

예제 2: 서점 반복문

이번에는 반복문에서 pass 문을 사용해 코드를 건너뛰는 예제를 살펴보겠습니다. 서점을 운영하고 있고, '습관 형성' 카테고리 도서 목록의 모든 제목을 콘솔에 출력하고 싶다고 가정해 보겠습니다. 단, 재고가 없는 『Atomic Habits』(아토믹 해빗)만큼은 출력에서 제외하고 싶습니다. 다음 코드로 이 작업을 처리할 수 있습니다.

books = ['The Power of Habit', 'Atomic Habits', 'Hooked: A Guide to Building Habit Forming Products', 'Mini Habits', 'The Miracle Morning']

for i in range(0, len(books)):
	if books[i] == 'Atomic Habits':
		pass
	else:
		print(books[i])

print('Program complete.')

실행 결과는 다음과 같습니다.

The Power of Habit
Hooked: A Guide to Building Habit Forming Products
Mini Habits
The Miracle Morning
Program complete.

첫 번째 줄에서는 서점의 '습관 형성' 카테고리에 속한 도서들이 담긴 배열을 선언합니다.

그다음 for 반복문을 선언해 books 배열의 모든 책을 하나씩 순회합니다.

책 제목이 『Atomic Habits』라면 pass 문으로 건너뛰고, 그렇지 않으면 제목을 콘솔에 출력합니다. 반복문이 모두 끝나면 "Program complete." 메시지를 출력합니다.

여기서 pass는 자리표시자 역할을 하며, 『Atomic Habits』 제목이 콘솔에 출력되지 않도록 건너뛰게 해 줍니다.

만약 pass 문을 포함하지 않았다면 코드는 다음과 같아집니다.

...
for i in range(0, len(books)):
	if books[i] == 'Atomic Habits':
	else:
		print(books[i])
...

이 코드를 실행하면 if문이 비어 있을 수 없기 때문에 파이썬은 오류를 반환합니다.

IndentationError: expected an indented block

나중에 이 부분에 추가 코드를 작성할 계획일 수 있습니다. 예를 들어 '품절된 도서입니다'라는 메시지를 출력하거나, 아니면 그대로 두는 선택도 가능합니다.

마치며

파이썬 pass 문은 프로그램의 특정 부분에 나중에 코드를 추가할 의향이 있음을 나타내는 자리표시자입니다. 문법은 단순히 pass 한 단어이며, 반복문, if문, 클래스 등 어디에서든 사용할 수 있습니다.

이 글에서는 파이썬에서 pass 문을 사용해 자리표시자를 만드는 방법과, pass 문이 필요한 이유를 살펴보았습니다. 빈 블록으로 인한 IndentationError를 피하고 싶다면 pass 문을 적극적으로 활용해 보세요.