-
Python 문법 기초 17 - argument(인자) 와 parameter(매개변수)Python 2022. 10. 22. 16:11
함수 : argument(인자) 와 parameter(매개변수) 키워드로 matching 하기
매개변수는 가인수 인자는 실인수라고도 불린다.
매개변수 유형
위치 매개변수 : 인수와 순서대로 대응
기본값 매개변수 : 매개변수에 입력값이 없으면 기본값 사용
키워드 매개변수 : 인수와 매개변수를 동일이름으로 대응
가변 매개변수 : 인수의 갯수가 동적인 경우def showGugu(start, end=5): // end는 초기값 부 for dan in range(start, end + 1): print(str(dan) + '단 출력') showGugu(2, 3) print() showGugu(3) print() showGugu(start=2, end=3) print() showGugu(end=3, start=2) print() showGugu(2, end=3) print() # showGugu(start=2, 3) # err SyntaxError: positional argument follows keyword argument # showGugu(end=3, 3) # 2번째 인수를 상수로 부여하면 에러가 발생한다. <console> 2단 출력 3단 출력 3단 출력 4단 출력 5단 출력 2단 출력 3단 출력 2단 출력 3단 출력 2단 출력 3단 출력
매개변수에 초기값을 부여하면 인자 호출을 하지 않아도 기본값으로 알아서 출력된다.
함수를 호출할 경우 매개변수에 직접 값을 넣어주는 것도 가능하다.
순서를 거꾸로 줘도 순서를 따라가지 않고 이름을 주었기 때문에 이름을 타고 가서 순서는 똑같다.
end 라는 매개변수의 이름을 지정해주었기 때문에 똑같이 순서대로 나오게 된다.
2번째 인수를 상수로 부여하면 err 가 발생한다.
print('\n가변인수 처리') def func1(*ar): # 패킹연산자 사용! test2 참고 # print(ar) # tuple 로 받는 걸 확인할 수 있다. for i in ar: print('밥 : ' + i) print() print() func1('비빔밥', '공기밥') func1('비빔밥', '공기밥', '김밥') <console> 가변인수 처리 밥 : 비빔밥 밥 : 공기밥 밥 : 비빔밥 밥 : 공기밥 밥 : 김밥
동적으로 받고 싶을 때 위와 같이 사용 가능하다.
def func2(a, *ar): # 패킹연산자 사용! test2 참고 #def func2(*ar, a): err 매개변수에서는 패킹연산자는 앞에 사용할 수 없다. print(a) for i in ar: print('밥 : ' + i) print() print() func2('비빔밥', '공기밥') func2('비빔밥', '공기밥', '김밥') <console> 비빔밥 밥 : 공기밥 비빔밥 밥 : 공기밥 밥 : 김밥
매개변수에서는 패킹연산자는 앞에 사용할 수 없다.
def calcProcess(op, *ar): if op == 'sum': re = 0 for i in ar: re += i elif op == 'mul': re = 1 for i in ar: re *= i return re print(calcProcess('sum', 1,2,3,4,5)) print(calcProcess('mul', 1,2,3,4,5)) <console> 15 120
패킹연산자를 사용하여 위와같은 형식도 만들 수 있다. 패킹연산자 부분은 list, tuple 등은 에러를 발생시키고 위 처럼 낱개로 넣어야 된다.
def func3(w, h, **other): # **은 DB 작업할 때 많이 사용한다. print('w:{}, h:{}'.format(w, h)) print(other) // 나머지 값들 func3(55, 160) func3(55, 160, irum='홍길동') # dict 로 넣으려면 이런식으로 넣어야된다. # func3(55, 160, {irum='홍길동'}) 이런 식으로 넣으면 안 된다. err func3(55, 160, irum='홍길동', nai =23) <console> w:55, h:160 {} w:55, h:160 {'irum': '홍길동'} w:55, h:160 {'irum': '홍길동', 'nai': 23}
인자를 dict 타입으로 호출하는 법 DB를 이용할 때 많이 사용한다.
def func4(a, b, *c, **d): print(a, b) print(c) print(d) func4(1, 2) func4(1, 2, 3) func4(1, 2, 3, 4, 5) func4(1, 2, 3, 4, 5, x=6, y=7) <console> 1 2 () {} 1 2 (3,) {} 1 2 (3, 4, 5) {} 1 2 (3, 4, 5) {'x': 6, 'y': 7}
패킹연산자(*, **)의 의미를 잘 이해해야 된다.
'Python' 카테고리의 다른 글
Python 문법 기초 19 - 일급함수와 람다함수 (0) 2022.10.22 Python 문법 기초 18 - 클로저(closure) (0) 2022.10.22 Python 문법 기초 16 - 변수의 접근 순서 (0) 2022.10.22 Python 문법 기초 15 - random 함수 (0) 2022.10.22 function(함수) 예제 (0) 2022.10.22