파이썬 함수(Function)
함수정의
def 이름 (매개변수 나열없으면 생략 가능) :
내용...
return 데이터 없으면 생략 가능
함수호출
다른 파일에 있는 경우 :
import 파일이름
파일이름.함수(매개변수)
같은 파일에 있는 경우 :
함수(매개변수)
연습1 - 함수 만들어서 호출해보기..
(함수 : disp.py[기본경로] , inFolder[기본경로.folder])
(함수호출 : funcTest[기본경로]- 임포트 위치 참고!)
* 파이썬은 자료형이 없기 때문에 함수에 매개변수를 어떤 자료형을 줘야 할지 헤깔릴 수가 있겠음..
↑ 위에서부터 inFolder.py, disp.py, funcTest.py
실행결과
*함수호출시 1MB의 스택을 만든다.
plus(int, int)라는 함수가 있다고 해보자.
1- result = plus(10,30) result =plus(result,50)
2- result = plus(plus(10,30),50)
1번과 2번의 경우 모두 값은 90으로 동일하다
1번의경우 스택 하나 호출 후 반환 또 호출 후 반환을 하게 되므로 각각 1MB씩 사용함.
2번의경우 스택 하나를 호출 후 다시 하나를 호출하게 되어 순간 2MB의 메모리를 사용하게 된다.
현재 PC는 메모리가 매우 크기때문에 신경쓰지 않을 수도 있곘지만, 웹서비스같은 경우 이 함수를 쓰는 사람이 몰리면 순식간에 큰 메모리를 사용하게 될 수도 있다고 한다. 이를 신경써서 코딩하면 좋을 것 같다.
----------------
한 가지 더 신기했던 점
java에서는 자료형을 반환하는 함수 선언시 모든 경우에 return을 해줘야 했다
ex)if, else if 문 모두에 return 자료형을 사용해야함.
하지만 python에서는 원하는 경우엠나 return을 해주고 그 외의 경우에는 None을 반환하는 것 같다.
↑선언된 함수에는 분명히 else에 대한 return값이 없지만 오류가 나지 않는다.