-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
클로저 예제 중 'NoneType' 에 대한 질문입니다.
21.01.17 14:46 작성 조회수 64
1
def closure_ex1():
series = []
def averager(v):
series.append(v)
print('inner >> {} / {}'.format(series, len(series)))
return sum(series) / len(series)
(return averager)
avg_closure1 = closure_ex1()
avg_closure2 = closure_ex1
위의 클로저 예제에서 closure_ex1 함수의 return averager를 제거하고 두가지 방식으로 변수 할당을 해보았습니다.
그리고 아래와 같이 타입을 출력해보았는데 NoneType과 function이라는 결과값이 나왔습니다.
print(type(avg_closure1)) -> NoneType
print(type(avg_closure2)) -> function
avg_closure1 = closure_ex1() 이렇게 변수를 할당하는 것은 avg_closure1에 closure_ex1 함수가 실행된 상태로
할당되어 있는 것을 의미하는 건가요?
그래서 함수의 실행 결과인 리턴값이 없기 때문에 NonType이라고 출력되는 건가요?
계속 (return 부분)을 return averager, return series, 생략 이렇게 넣어서 결과를 출력해보니 값이 다 다르게 나오고, 느낌은 오는데 명확히 정리가 잘 안됩니다 ㅠㅠ
항상 친절한 답변 감사드립니다.
답변을 작성해보세요.
1
답변 1