본문 바로가기

파이썬

파이썬 arguments 에 대해 알아보기

파이썬에서 "argument"는 함수에 전달되는 값을 의미한다. 함수는 특정 작업을 수행하기 위해 호출될 때 인수를 받을 수 있고, 이를 통해 함수의 동작을 제어하거나 필요한 데이터를 제공할 수 있다. 파이썬에서 함수의 인수는 두 가지 주요 유형으로 나눌 수 있다.

  1. Positional Arguments (위치 인수): 함수에 인수를 순서대로 전달하는 방법이다.
  2. Keyword Arguments (키워드 인수): 인수의 이름을 지정하여 값을 전달하는 방법이다.

아래에 두 가지 인수 유형을 예제와 함께 알아보자. 

위치 인수 (Positional Arguments)

def greet(name, age):
    print(f"Hello, {name}. You are {age} years old.")

greet("Alice", 30)  # Output: Hello, Alice. You are 30 years old.

 

여기서 name과 age는 위치 인수이다. 함수 greet를 호출할 때, 첫 번째 인수는 name에, 두 번째 인수는 age에 전달된다.

키워드 인수 (Keyword Arguments)

def greet(name, age):
    print(f"Hello, {name}. You are {age} years old.")

greet(name="Bob", age=25)  # Output: Hello, Bob. You are 25 years old.

 

여기서는 name과 age를 키워드 인수로 전달하고 있다. 인수의 순서는 중요하지 않으며, 각 인수의 이름을 명시하여 값을 전달한다, 

기본값을 갖는 인수 (Default Arguments)

함수 정의 시 기본값을 지정할 수도 있습니다. 이렇게 하면 해당 인수를 생략했을 때 기본값이 사용된다. 

def greet(name, age=20):
    print(f"Hello, {name}. You are {age} years old.")

greet("Charlie")  # Output: Hello, Charlie. You are 20 years old.
greet("David", 40)  # Output: Hello, David. You are 40 years old.

가변 인수 (Variable-Length Arguments)

가변 인수 (Variable-Length Arguments)는 함수에 전달할 인수의 수가 정해지지 않았을 때 사용할 수 있는 방법이다. 

종류는 크게 args, kwargs 로 나뉜다. 

  • args는 위치 인수를 가변적으로 받을 때 사용한다.
  • kwargs는 키워드 인수를 가변적으로 받을 때 사용한다.

args는 위치 인수는 여러 위치 인수를 튜플* 형태로 받아 처리한다. 

아래 예시문은 args 위치 인수를 이용해 텔레토비의 보라돌이, 뚜비, 나나에게 인사를 하는 코드문이다. 

def greet(*names):
    for name in names:
        print(f"Hello, {name}.")

# greet 함수를 호출하면서 여러 이름을 전달할 수 있습니다.
greet("보라돌이", "뚜비", "나나")  
# 이 호출은 다음과 같은 출력을 만듭니다:
# Hello, 보라돌이.
# Hello, 뚜비.
# Hello, 나나.

 

* 튜플 : 순서가 있는 불변(immutable) 데이터 구조

# 튜플 생성
my_tuple = (1, 2, 3)

# 튜플 요소 접근
print(my_tuple[0])  # Output: 1

# 튜플 요소는 변경할 수 없다
# my_tuple[0] = 10  # Error: 'tuple' object does not support item assignment

 

kwargs 키워드 인수는 하나의 *딕셔너리로 전달되며, 함수 안에서 키-값 쌍을 개별적으로 처리할 수 있다. 

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

# display_info 함수를 호출하면서 여러 키워드 인수를 전달할 수 있습니다.
display_info(name="뽀", age=7, country="텔레토비 월드")  
# 이 호출은 다음과 같은 출력을 만듭니다:
# name: 뽀
# age: 7
# city: 텔레토비 월드

 

* 딕셔너리 : 키(key)와 값(value) 쌍으로 이루어진 데이터 구조

# 딕셔너리 생성
my_dict = {"name": "Alice", "age": 30, "city": "New York"}

# 딕셔너리 요소 접근
print(my_dict["name"])  # Output: Alice

# 딕셔너리 요소 변경
my_dict["age"] = 31

# 딕셔너리 요소 추가
my_dict["country"] = "USA"

# 딕셔너리 요소 삭제
del my_dict["city"]

print(my_dict)  # Output: {'name': 'Alice', 'age': 31, 'country': 'USA'}