'함수나 클래스의 구현을 미룰 때 쓰는 pass 문'에 해당되는 글 1건

  1. 2018.07.24 [Python] 함수나 클래스의 구현을 미룰 때 쓰는 pass 문 (4)

이번 포스팅에서는 함수나 클래스의 구현을 미룰 때 쓰는 pass statement 에 대해서 알아보겠습니다. 


Python은 함수나 클래스를 정의할 때 { } 를 사용하지 않고 들여쓰기(indentation)로 함수나 클래스가 실행할 코드 블록을 정의하는데요, 만약 코드 블록 부분에 실행해야 할 코드가 없다면 def function_name:  이후의 줄에 아무것도 없게 되어 Python은 'SyntaxError: unexpected EOF while parsing' 에러를 발생시킵니다. 



In [1]: def null_func():

   ...:

   ...:

File "<ipython-input-1-85c822900a5a>", line 2

^

SyntaxError: unexpected EOF while parsing


 




이처럼 함수나 클래스 이름 정의 후에 ':' 다음 줄에 아무것도 실행시키지 않으려면 'pass' 문을 명시적으로 표기해주어야만 SyntaxError 가 발생하지 않습니다. 





다음은 아무것도 실행할 것이 없는 null_func() 라는 이름의 함수에 pass 문을 사용한 예입니다. 



In [2]: def null_func():

   ...:       pass

 




다음은 분류 모델의 BaseClassifier() 클래스를 정의할 때 fit() 함수에 pass 문을 사용한 예입니다. 



In [3]: from sklearn.base import BaseEstimator

   ...:   class BaseClassifier(BaseEstimator):

   ...:       def fit(self, X, y=None):

   ...:           pass

   ...:       def predict(self, X):

   ...:           return np.zeros((len(X), 1), dtype=bool)

 



'빈 구현'을 만드는 pass 문의 사용 용도 만큼이나 이번 포스팅은 별 내용이 없네요. ^^; 





이전에 for loop 포스팅을 했을 때 pass, continue, break 문을 비교해서 설명했던 적이 있는데요, 이번에 함수 파트에서 pass 문이 다시 나온만큼 복습하는 차원에서 pass와 continue문을 간단한 예를 들어서 한번 더 비교해서 설명하겠습니다. 



  pass : 아무것도 실행하지 않고 다음 행으로 넘어감



In [4]: for i in [1, 2, 3, 4, 5, 6]:

   ...:       if i == 4:

   ...:           pass

   ...:           print("This pass block will be printed before 4")

   ...:       print("The number is ", i)

   ...:   print("The end")

   ...:


The number is 1

The number is 2

The number is 3

This pass block will be printed before 4

The number is 4

The number is 5

The number is 6

The end

 




  continue : 다음 순번의 loop로 되돌아가서 loop문을 실행함



In [5]: for i in [1, 2, 3, 4, 5, 6]:

   ...:       if i == 4:

   ...:           continue

   ...:           print("This continue block and No. 4 will not be printed")

   ...:       print("The number is ", i)

   ...:   print("The end")


The number is 1

The number is 2

The number is 3

The number is 5

The number is 6

The end

 



많은 도움이 되었기를 바랍니다. 


Posted by R Friend R_Friend

댓글을 달아 주세요

  1. 김진양 2018.07.26 23:42  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 글쓴이님. 혹시 하나 질문드려도되나요?
    파이썬 관련 질문이 아니고 R 질문인데 너무 막막해서 최신 글에 댓글을 다는 실례를 범합니다....
    본문과 상관없는 질문을 달기엔 너무 죄송해서 질문글을 단 R프랜드님의 본문 링크를 여기다 걸게요!
    다시 한번 실례가 되었다면 너무 죄송하다는 말씀을 전해드립니다.
    R 분석 결과 외부 파일로 저장하기 : capture.output()

    출처: http://rfriend.tistory.com/18 [R, Python 분석과 프로그래밍 (by R Friend)]
    입니다.

  2. R Friend R_Friend 2018.07.27 01:03 신고  댓글주소  수정/삭제  댓글쓰기

    처음 질문 달으셨던 18번 포스팅에 답글 달아놓았습니다. 잘 해결되면 좋겠네요.

    • 김진양 2018.07.30 08:46  댓글주소  수정/삭제

      안녕하세요 알프랜드님, 친절한 답변 감사드립니다! 말씀해주신대로 수식을 적었는데 새 Sheet 생성 문제 관련해서 오류가 발생했습니다. 열심히 구글링을 해보았지만, 소양이 부족해 해결하지 못했네요.
      염치없지만 한번 더 도움을 요청할 수 있을까요???? 18번 포스팅에 댓글을 달아놓았습니다!

    • R Friend R_Friend 2018.07.30 17:34 신고  댓글주소  수정/삭제

      안녕하세요 김진양님. 18번 포스팅에 수정한 코드 답글 달았습니다.