함수
관련내용
- 함수의 정의
- 전역변수와 지역변수
- 인수의 전달
- 가변인수
- Python의 함수는 1급(First Class)객체
- 1급 객체와 변수의 영역
- 클로저(Closure)
- 람다함수(Lambda Function)
- 주요한 내장함수들
- 데코레이터(Decorator, 장식자)
인수의 전달
- 함수의 정의
- 전역변수와 지역변수
- 인수의 전달
- 가변인수
- Python의 함수는 1급(First Class)객체
- 1급 객체와 변수의 영역
- 클로저(Closure)
- 람다함수(Lambda Function)
- 주요한 내장함수들
- 데코레이터(Decorator, 장식자)
인수의 전달
함수에 매개변수(인수)를 전달은 기본적으로 "인수이름 = 값"의 형식에 따르며 이 값은 인수의 초기값이 됩니다. 물론 함수 내에서 이 값은 수정될 수 있으며 초기값을 지정하지 않을 수 있습니다. 즉, 인수이름만 지정할 수 있습니다. 일반적으로 식 1의 규칙을 따릅니다.
def 함수이름(인수1, 인수2, 인수3 = 값3, 인수4 = 값4) | (식 1) |
⇒ 함수 실행: 함수이름(값1, 값2, 인수3 = 값3, 인수4 = 값4) |
- 이름과 함께 전달한 값은 그 인수의 초기값이 됩니다.
- 초기값이 지정된 인수는 그렇지 않은 인수 뒤에 위치합니다.
- 초기값이 지정되지 않은 인수는 순서를 지켜야됨
- 함수 실행시 초기값이 지정된 인수는 생략할 수 있음
- 초기값이 지정된 인수는 전달 순서에 무관
- 함수(인수2, 인수1, …) → 에러 발생
- 함수(인수1, 인수3=값3, 인수2, …) → 에러 발생
- 함수(인수1,인수2, 인수4 = 값4, 인수3 = 값3) → 실행
- 함수(인수2=값2, 인수4 = 값4, 인수3 = 값3, 인수1=값1 ) → 실행
다음 함수 order()는 세개의 인수를 요구합니다.
def order(order, num=1, product="coffee"): print(f"주문번호: {order}, 테이블번호: {num}, 품목:{product}")
초기값 지정 없는 인수를 전달할 경우는 순서대로 입력하여야 합니다.
order(2, 10, "spaghetti")
주문번호: 2, 테이블번호: 10, 품목:spaghetti
초기값이 지정된 인수(들)은 생략할 수 있습니다.
order(order=2)
주문번호: 2, 테이블번호: 1, 품목:coffee
인수의 이름을 전달하지 않은 상태에서 인수의 생략 순서는 배열의 마지막부터 시작합니다. 그러므로 다음은 마지막 인수인 "product"가 생략된 것입니다.
order(2, "tea")
주문번호: 2, 테이블번호: tea, 품목:coffee
인수명과 함께 전달된 경우 인수의 전달 순서나 생략 순서는 무시됩니다.
order(product="tea", order=2, num=1)
주문번호: 2, 테이블번호: 1, 품목:tea
다음은 인수명과 함께 인수가 전달된 경우로서 생략된 인수의 경우는 초기값을 사용합니다. 이것은 이 함수가 사용할 인수값이 함수 생성과 동시에 주어졌음을 의미합니다. 그러므로 초기값이 설정되지 않은 인수는 생략할 수 없습니다.
order(order=2, product="tea")
주문번호: 2, 테이블번호: 1, 품목:tea
댓글
댓글 쓰기