728x90
반응형
python 에서 module
은 def
를 사용하여 정의한다
- def가 실행되면, 함수의 객체와 참조가 같이 생성된다
- return값을 설정하지 않으면 python은 자동으로 None을 반환한다
- C 언어와 같이, 아무런 값을 반환하지 않는 함수는 procedure(프로시저)라고 부른다
함수가 호출될 때마다 active record
(활성화 레코드)가 생성된다
- 활성화 레코드에는 함수의 정보가 기록되며, 이를
stack
에 저장한다함수의 정보 (반환값, 매개변수, 지역변수, 반환주소)
모듈생성 시 주의점 - 모듈의 기본값
모듈을 생성할 때, 함수 또는 매서드에서 가변객체
를 기본값으로 사용하면 안된다
# 나쁜 예
def method(number, number_list=[]):
number_list.append(number)
return number_list
>>> method(5) # 예상결과 [5]
[5]
>>> method(3) # 예상결과 [3]
[5,3]
>>> method(7) # 예상결과 [7]
[5,3,7]
# 좋은 예
def method(number, nuber_list=None):
if number_list is None:
number_list = []
number_list.append(number)
return number_list
>>> method(5) # 예상결과 [5]
[5]
>>> method(3) # 예상결과 [3]
[3]
>>> method(7) # 예상결과 [7]
[7]
2020/09/21 - [Programming/Python] - package - 패키지
2020/06/12 - [Programming/Python] - 패키지, 모듈, import 에러
728x90
728x90
BIG
'Programming > Python' 카테고리의 다른 글
byte-compiled code - python (0) | 2020.09.22 |
---|---|
package - 패키지 (0) | 2020.09.21 |
setdefault() - dictionary의 키 존재 상관없이 (0) | 2020.09.17 |
Reverse list - 리스트 역순으로 (0) | 2020.09.16 |
list method 성능 측정 (0) | 2020.09.15 |
댓글