본문 바로가기
Computer & Program/python

[python] function(함수) - 02

by TDRemon 2024. 2. 22.
반응형

안녕하세요. TDR 입니다.

지난번 함수 1부에 이어 가변인수, 키워드 인수 등에 대해서 정리해 보겠습니다.

 

[python] function (함수) - 01

안녕하세요. TDR입니다. 오늘은 python function(함수)의 여러가지 사용법을 정리해 보겠습니다. Structure def 함수이름(매개변수들): ... return 반환값들 함수 선언은 def 키워드를 통해 이루어지고 다른

tdremon.tistory.com

Variable argument(가변인수)

def some_function(a, b, *args)
    print(a)  # 1
    print(b)  # 2
    for arg in args:
        print(arg)  # 3, 4, 5

some_function(1, 2, 3, 4, 5)

함수를 작성하다보면 때론 매개변수가 유동적일 때가 있습니다. 그럴 때 함수 이름은 같으나 매개변수 개수만 다른 함수를 여러개 만들 수도 있습니다. (Java에서의 Overloading) python에서는 가변인수를 이용해서 유동적인 변수를 받을 수 있습니다. 주의할 점은 *args는 반드시 매개변수 가장 마지막 값이여야 합니다.

Keyword argument(키워드 인수) & Dictionary unpacking(딕셔너리 언팩킹)

def some_function(name, age):
    print(name)
    print(age)

# Dictionary unpaction
# *를 2개 씀으로서 값을 전달 가능
# 참고로 *를 1개 쓰면 key가 전달됨
params = {'name': 'kim', 'age': 12}
some_function(**param)

# Keyword argument
# 키워드 인수의 경우 순서는 중요하지 않음
some_function(age=14, name='park')  # some_function('park', 14) 와 동일

Dictionary 형태의 값을 풀어서 전달이 가능합니다. 그리고 매개변수의 이름을 지정해서 전달할 경우, 순서를 무시할 수도 있습니다.

Keyword variable argument(키워드 가변 인수)

def some_function(**kwargs):
    for key, value in kwargs.items():
        print(key, value)
        
dic01 = {'a': 'apple', 'b': 'banana'}
some_function(**dic01)
dic02 = {'name': 'choi', 'age': 20, 'address': 'seoul'}
some_function(**dic02)

위에서 설명했던 것을 모두 합쳐 놓은 느낌으로 dictionary 형태의 매개변수의 값의 개수를 유동적으로 받는 방법입니다. 참고로 kwargs는 관례적으로 저렇게 쓴다고하니 따르는 것이 좋습니다.

이외에도 여러가지 기능 또는 알아 두면 좋은 정보들이 있습니다. 예를 들어, 매개변수의 초기값 설정이나 재귀함수의 call-stack은 1000회 한정이라든지 하는 정보가 있습니다.

 

반응형

'Computer & Program > python' 카테고리의 다른 글

[python] class(클래스) - 01  (0) 2024.02.24
[python] 지역변수 & 전역변수  (0) 2024.02.23
[python] function (함수) - 01  (1) 2024.02.21
[python] closure(클로저)  (0) 2024.02.17
[python] lambda(람다)  (0) 2024.02.16

댓글