본문 바로가기
언어/PYTHON

[Python] pass의 역할 | 널 연산 Null Operation | IndentationError

by 만결숭이 2022. 9. 26.
반응형

아래 사진은 text -> json형태 변환 프로그램 중 일부입니다.

def 끝자락마다 보이는 이 pass는 무슨 역할을 하는 것일까요?

 

pass ~ pass ~ pass ~

 

 

직감적으로, 리턴 할 것 없이 그냥 통과하라는 느낌이 딱 들었습니다.

실제로 그 당시 구글링 했을 때에도 ^딱 이 정도로 이해하고 넘겼던 것 같은데요. (빨리 코드를 수정해서 넘겨야 했기에...)

파이썬 책을 읽다가 제대로 된 해답을 알게 되어 기록할 겸 포스팅합니다.

 

 

코딩을 할 때 전체 골격을 먼저 잡아 놓고 코딩하는 경우가 있습니다.

class MyClass(object):
    def method_a(self):
    
    def method_b(self):
    	print("Method B")
      
c = MyClass()

이렇게 말이죠 !

 

그러나 이 클래스는 실행되지 않습니다. 아래처럼 인덴트 오류가 발생합니다.

 

    def method_b(self):

        ^

IndentationError: expected an indented block

 

이유는 method_a()에서 아무런 처리를 하지 않았기 때문입니다. "야 개발자야, 너 method_b() 여기 인덴테이션 하나 추가해서 method_a() 안에 넣어야 하는거 아니냐 ?! 이상해 method_a()에 아무것도 없잖아." 하고 알려주는거죠.

 

pass는 이런 오류를 막는 역할을 합니다.

 

class MyClass(object):
    def method_a(self):
        # 추가됨
        pass

    def method_b(self):
        print("Method B")

c = MyClass()

 

 

pass :

널 연산(Null Operation) 으로, 아무것도 하지 않는 기능

 

 

 

 

이는 파이썬 알고리즘 인터뷰(박상길 지음, 정진호 일러스트, 책만 출판사) 책의 일부에서 정보를 가공하여 포스팅 한 글입니다.

반응형

댓글