본문 바로가기

STACKOVERFLOW 1일 1질문

첫 번째 질문. VOID FUNCTION과 FRUITFUL FUNCTION의 차이가 뭐에요?

https://stackoverflow.com/questions/56910764/what-is-the-difference-between-void-function-and-frutial-function/56910849?noredirect=1#comment100366187_56910849

 

What is the difference between void function and frutial function?

Now I am watching PY4E youtube, the difference between void and fruitial function does not touch me well. just return value? Also, if the void function has a function PRINT(SOMETHING) even though...

stackoverflow.com

나의 질문 : PY4E를 통해 파이썬을 공부하고 있는데요, VOID FUNCTION과 FRUITFUL FUNCTION의 차이가 잘 와 닿지가 않아요. 그냥 RETURN VALUE의 차이일까요?

 

그리고, VOID FUNCTION이 print(SOMETHING)과 같은 FUNCTION을 가지고 있다면, 이것이 RETURN 값을 주지 않는다고 하여도 결과나 어떤 값을 가지고 있는 것 아니에요? 햇갈리네요.

 

답 1 by wjandrea : 파이썬에서 모든 FUNCTION들은 어떤 것을 반환합니다. 하지만 어떤 FUNCTION은 'None'을 반환합니다. 이것은 PRINT를 통해 RETURN VALUE를 확인 함으로써 알 수 있습니다. 

 

a = [] # a를 아무 값이 없는 리스트로 지정
a.append(1) # a에 1을 추가함

a.append(1)이 쓰여진 이후 아무것도 반환되지 않음에 주의하세요. 하지만, 이것은 사실 'None'값을 반환하는 것이랍니다.  우리는 이것을 PRINT 함수를 써서 확인할 수 있어요

print(a.append(2)) #리스트 a에 2를 추가하는 함수 a.append(2)의 반환 값을 보여라.
None # 아무것도 없습니다.

 

print는 none을 반환할 것입니다.

print(print(a.append(3))) # a에 3을 추가하는 a.append(3) 함수를 반환하고, 그 print 함수를 반환하라.
None
None

그렇기에, return 값이 지정되지 않은 모든 사용자 정의 함수는 None을 반환합니다.

 

느낀점 : stackoverflow를 매일 이용해야겠다는 다짐으로 질문을 한 것인데, 내가 생각해도 검색하는 노력을 하지 않고 

무턱대고 질문하지 않았나 반성해본다. 좋은 질문을 만드는 것도 배우는 사람의 의무가 아닐까. 좋은 질문을 만들 수 있기를. 답해주신 분께 정말 감사한다.