📚 [Archive] CS & AI 스터디/[STUDY] Python 기초 🐍

[Python] 인자와 알규먼트의 차이점 이해하기 🐍

히주 2024. 12. 24. 13:40

가만히 생각해보니 생각보다 배가 안 고파서 그냥 굶을려구요... 그러므로 정리 광광 하기~ 다이어트도 되고 지식도 정리하고 완전 러키비키희주~💞❣️


📝 인자(Parameter) 란?

함수가 정의될 때 사용되는 변수로 함수가 호출될 때 외부에서 전달받을 값을 받는 자리. 인자는 함수의 내부에서 데이터를 처리할 수 있도록 그 값을 저장하는 역할을 함.

 

name과 age는 함수 greet의 인자임.

함수 호출 시 값이 전달되어 그 값을 사용하여 출력.

def greet(name, age):
    print(f"안녕하세요, {name}님! 나이는 {age}살입니다.")

 

"희주"와 23은 알규먼트(Argument)로 인자 name과 age에 각각 전달됨.

greet("희주", 23)

 

 

 

1. 위치 기반 인자 (Positional Parameters)

함수 정의 시 순서대로 전달되는 인자

 

2. 기본값 인자 (Default Parameters)

기본값을 제공하여 값을 생략할 수 있는 인자

def greet(name="손님"):
    print(f"안녕하세요, {name}님!")

 

3. *가변 위치 인자 (args)

여러 개의 위치 기반 인자를 받을 수 있는 인자

def sum_all(*args):
    return sum(args)

 

4. **가변 키워드 인자 (kwargs)

여러 개의 키워드 인자를 받을 수 있는 인자

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

 

 


📩  알규먼트(Argument)란?

알규먼트(Argument)는 함수를 호출할 때 함수에 전달하는 값. 이 값은 함수가 작업을 수행하는 데 필요한 데이터를 제공. 알규먼트는 함수 정의에서 정의한 인자(Parameters)와 연결되어 함수가 올바르게 작동하도록 도와줌.

 

 

1. 위치 기반 알규먼트 (Positional Arguments)

위치 기반 알규먼트는 함수 정의에서 인자가 정해진 순서대로 전달되는 값

def add(a, b):
    return a + b

# 함수 호출 시 위치에 맞게 알규먼트를 전달
print(add(3, 5))  # 출력: 8
  • a와 b는 함수 정의에서 정의된 인자이고, 3과 5는 위치 기반 알규먼트

 

2. 키워드 알규먼트 (Keyword Arguments)

키워드 알규먼트는 알규먼트를 전달할 때 인자 이름을 지정해서 전달

이 방법은 알규먼트의 순서에 관계없이 사용할 수 있음

def introduce(name, age):
    print(f"저는 {name}이고, 나이는 {age}살입니다.")

# 함수 호출 시 알규먼트의 이름을 지정하여 전달
introduce(age=23, name="희주")
# 출력: 저는 희주이고, 나이는 23살입니다.

 

3. 기본값 알규먼트 (Default Arguments)

기본값 알규먼트는 함수 정의 시 기본값을 지정할 수 있는 알규먼트

기본값을 제공하면 함수를 호출할 때 알규먼트를 생략할 수 있

def greet(name="손님"):
    print(f"안녕하세요, {name}님!")

greet()        # 출력: 안녕하세요, 손님님! 쿸
greet("희주")  # 출력: 안녕하세요, 희주님!
  • name의 기본값은 "손님"임
  • 호출 시 알규먼트를 생략하면 기본값이 사용됨

 

4. 가변 위치 인자 (*args)

*args는 여러 개의 알규먼트를 전달할 수 있게 해주는 특수한 문법

함수 호출 시 몇 개의 알규먼트든지 받을 수 있음

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4))  # 출력: 10
  • *args는 여러 개의 숫자를 받아서 합산함!

 

5. 가변 키워드 인자 (**kwargs)

**kwargs는 여러 개의 키워드 알규먼트를 받을 수 있는 문법

함수 호출 시 키워드-값 쌍으로 전달된 값을 딕셔너리 형태로 받을 수 있음

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="희주", age=23, hobby="요가")
# 출력:
# name: 희주
# age: 23
# hobby: 요가
  • **kwargs는 함수에 전달된 키워드-값 쌍을 딕셔너리 형태로 처리함!

 


 

⚖️ 인자와 알규먼트의 차이!

  • 인자(Parameter)는 함수 정의 시 사용되는 변수
  • 알규먼트(Argument)는 함수를 호출할 때 인자에 실제로 전달되는 값

인자는 함수 정의에서 사용되는 변수로 함수가 호출될 때 전달되는 값을 받아서 함수 내에서 활용

알규먼트는 함수가 동작할 때 필요한 값으로 다양한 방법( 위치 기반, 키워드, 기본값, 가변 인자 등  )으로 전달 가능