이번 포스팅에서는 함수나 클래스의 구현을 미룰 때 쓰는 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
|
많은 도움이 되었기를 바랍니다.
'Python 분석과 프로그래밍 > Python 프로그래밍' 카테고리의 다른 글
[Python] 가변 매개변수(variable-length arguments) 위치에 따른 Keyword 매개변수 호출 시 SyntaxError, TypeError (0) | 2019.08.03 |
---|---|
[Python] for loop 반복문의 진척율을 콘솔창에 출력해서 확인하는 방법 (1) | 2019.07.13 |
[Python] 함수 안에 TypeError, ValueError 메시지 지정하기 (0) | 2018.07.14 |
[Python] 함수 안의 함수 : 중첩함수(Nested Function), 재귀함수(Recursive Function) (0) | 2018.07.13 |
[Python] 변수의 유효범위 : 전역변수(Global variable) vs. 지역변수(Local variable) (0) | 2018.07.11 |