파이썬을 하다보면 *args와 *kwargs라는 것들을 종종 보게 된다. 하지만 나도 예전에는 항상 볼 때마다 이게 무엇인지 하고 넘어갔었는데, 파이썬을 하다보면, 특히 함수를 만들다보면 가끔 정말 필요하게 되는 것 같아 조금 자세하게 적어보려고 한다.
매 포스팅이 그렇듯 해당 포스팅의 주 목표는 나의 복습이자, 미래에 이걸 또 까먹을 나를 위한 포스팅이다.
*args란 무엇인가?
*args와 **kwargs 모두 변수이다. 일단 *args에 대해 먼저 설명을 하자면, *args는 일단 argument의 약자이다. 또한 *args는 가변인자를 위한 변수인데, 한마디로 말하자면 우리가 함수를 만들 때, 인자를 몇 개 받아야 할지 모르는 경우 입력해두는 변수이다.
*뒤에 꼭 args라고 하진 않아도 되지만, 혼동방지를 위해 웬만하면 args로 두는게 좋을 것 같다.
def example(*args):
print(*args)
이러한 함수를 만들었다고 예시를 들어보자, 여기 *args 부분엔 어떤 단어가 들어가도, 그 단어를 그대로 출력을 해낼 것이다.
def example(*args):
print(*args)
example("안녕")
이렇게 입력을 하면 당연히 "안녕"을 출력 해 낼것이다. 인자가 한개가 아니더라도, 튜플 형식으로 아래와 같이 처리를 해준다.
def example(*args):
print(*args)
example("안녕")
example("안녕","나는","심코딩","입니다")
**kwargs 란 무엇인가?
*kwargs는 keyword arguments의 약자이다. *args와 마찬가지로 ** 두개는 꼭 붙여야 하지만 뒤 단어는 아무 단어나 들어가도 상관은 없다.
바로 위에서 *args는 튜플형식으로 인자를 저장한다고 하였는데, **kwargs는 딕셔너리 형태로 저장을 한다.
아래와 같이 코드를 작성하고 실행을 하면
def example(**kwargs):
print(kwargs)
example(first="안녕",second="잘가")
이렇게 딕셔너리 형태로 나오는것을 볼 수 있다.
'Programming > Python' 카테고리의 다른 글
파이썬으로 달력 만들어보기! - 심코딩 (3) | 2022.10.05 |
---|---|
파이썬으로 원하는 웹사이트 오픈하기 - 심코딩 (2) | 2022.09.28 |
파이썬 tkinter 라벨 만들기 (파이썬 GUI, python) (10) | 2022.07.09 |
파이썬 tkinter란? 손쉽게 GUI 만들기 (기본, 버튼) (파이썬 Python) (16) | 2022.07.07 |
파이썬 이미지 처리 PIL (Pillow) 설치 및 기본 사용 방법 (14) | 2022.07.05 |
댓글