# 함수 매개변수 문법
정리 : 2018.03.04 asoe72
---------------------------------------
## python
### 기본 인수 값
인수를 넘겨주지 않아도 자신의 기본값을 취한다.
def incr(a, step=1):
return a + step
>>> b = 1
>>> b = incr(b) # 1 증가
>>> b
2
>>> b = incr(b, 10) # 10 증가
>>> b
12
### 키워드 인수
순서가 아닌 인수 이름으로 값을 전달.
def area(height, width):
return height * width
a = area(width=20, height=10) # 200
b = area(height='ha ', 3) # ha ha ha
키워드 인수 이전에는 순서에 의해 인수 매칭을 한다.
area(20, width=5) # ok
키워드 인수 이후에는 순서에 의한 인수 매칭을 할 수 없다.
area(width=5, 20) # error
### 가변 인수 리스트
고정 인수를 먼저 나열한 후, 나머지를 튜플 형식으로 받는다.
def varg(a, *arg)
print a, arg
>>> varg(1)
1 ()
>>> varg(2, 3)
2 (3,)
>>> varg(2, 3, 4, 5, 6)
2 (3, 4, 5, 6)
### 정의되지 않은 키워드 인수 처리하기
마지막에 **kw 형식으로 기술하면 사전 형식으로 전달받는다.
def f(width, height, **kw):
print width, height
print kw
>>> f(width=10, height=5, depth=10, dimention=3)
10 5
{ 'depth': 10, 'dimension': 3 }
---------------------------------------
## javascript
함수에서 정의한 형식 매개변수보다 많거나 적은 실 매개변수로 함수를 호출할 수 있다.
- 실 매개변수가 많으면 무시된다.
- 실 매개변수가 적으면 undefined로 입력된다.
### 기본 매개변수
function test(a, b, c)
{
if(!b) { b = 52; }
if(!c) { c = 273; }
alert(a + ':' + b + ':' + c);
}
test(1, 2);
// 1:2:273이 출력된다.
혹은 아래와 같이 간략화 할 수 있다.
function test(a, b, c)
{
b = b || 52;
c = c || 273;
alert(a + ':' + b + ':' + c);
}
test(1, 2);
// 1:2:273 이 출력된다.
### arguments 객체를 활용한 가변 인수
function sumAll()
{
alert(typeof(arguments) + ' : ' + arguments.length);
}
sumAll(1, 2, 3, 4, 5, 6, 7, 8, 9);
// object : 9 가 출력된다.
---------------------------------------
## 참고자료
- 열혈강의 Python 개정판 Ver.2 - 이강성, chap.10
- 모던 웹을 위한 JavaScript + jQuery 입문(3판)
'programming > python' 카테고리의 다른 글
| matplotlib의 plot() 실행 시, kernel shutdown 될 때 대응 방법 (0) | 2024.03.10 |
|---|---|
| C++ 응용프로그램에 파이썬 인터프리터 내장하기 (Qt 기반) (1) | 2020.03.15 |