번역: 파이썬 - 기본 인수

안녕하세요, 파이썬 프로그래머를 꿈꾸는 여러분! 오늘은 파이썬의 기본 인수에 대해 탐험해볼 거예요. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 여러분을 이 여정을 안내해 줄 수 있어 기쁩니다. 그럼, 좋아하는 음료를 준비하고 편하게 앉아서, 함께 파이썬 모험에 떠나보죠!

Python - Default Arguments

기본 인수란 무엇인가요?

자세히 살펴보기 전에, 기본적인 것부터 시작해볼게요. 기본 인수는 파이썬에서 함수 파라미터에 사전 설정된 값을 정의할 수 있는 편리한 기능입니다. 이 값들은 함수를 호출할 때 특정 값을 제공하지 않으면 사용됩니다.

기본 인수를 안전的网络라고 생각해볼 수 있어요. 여러분이 값을 지정하지 않았을 때도, 함수가 여전히 원활하게 실행되도록 보장해줍니다. 마치 친구가 항상 피크닉에 추가小吃를 가져오는 것처럼 – 항상 필요하지 않지만, 필요할 때마다 가지고 있어서 좋은 것 같죠!

기본 인수를 왜 사용하나요?

  1. 코드가 더 유연해집니다.
  2. 제공해야 할 인수의 수를 줄입니다.
  3. 함수에 새로운 파라미터를 추가할 때 과거 호환성을 유지하는 데 도움이 됩니다.

이제 실제로 어떻게 작동하는지 살펴보죠!

기본 인수 예제

간단한 예제부터 시작해볼게요. 사람들에게 인사를 건다는 함수를 만들어보겠습니다:

def greet(name, greeting="안녕"):
    return f"{greeting}, {name}!"

# 함수 사용
print(greet("앨리스"))
print(greet("밥", "하이"))

출력:

안녕, 앨리스!
하이, 밥!

이 예제에서 greeting은 우리의 기본 인수입니다. 인사를 지정하지 않으면, 함수는 기본적으로 "안녕"을 사용합니다. 자세히 설명해보죠:

  1. greet 함수를 두 개의 파라미터로 정의했어요: namegreeting.
  2. greeting의 기본 값은 "안녕".
  3. greet("앨리스")를 호출할 때, 우리는 tylko name을 제공합니다. 함수는 기본 "안녕"을 인사로 사용합니다.
  4. greet("밥", "하이")를 호출할 때, 우리는 namegreeting을 모두 제공하여, 함수는 "하이"를 기본값 대신 사용합니다.

예제: 키워드 인수 없이 함수 호출

이제 약간 더 복잡한 예제를 살펴보죠. 쇼핑 카트에 있는 아이템들의 총 비용을 계산하는 함수를 만들어보겠습니다:

def calculate_total(items, tax_rate=0.08, discount=0):
    subtotal = sum(items)
    total = subtotal * (1 + tax_rate) - discount
    return round(total, 2)

# 함수 사용
cart1 = [10, 20, 30]
print(calculate_total(cart1))
print(calculate_total(cart1, 0.10))
print(calculate_total(cart1, 0.10, 5))

출력:

64.80
66.00
61.00

이를 자세히 설명해보죠:

  1. calculate_total 함수는 세 개의 파라미터를 가집니다: items(필수), tax_rate(기본 0.08), discount(기본 0).
  2. 첫 번째 호출에서는 우리는 tylko items을 제공합니다. 함수는 기본 세율과 할인이 없음.
  3. 두 번째 호출에서는 items과 사용자 정의 세율 0.10을 제공합니다. 할인은 여전히 0.
  4. 세 번째 호출에서는 모든 세 가지 인수를 제공합니다: items, 세율, 할인 5.

기억해요, 키워드 인수 없이 함수를 호출할 때는 순서가 중요합니다! 파이썬은 함수가 정의된 순서대로 파라미터에 값을 할당합니다.

가변 객체를 기본 인수로 사용하기

이제 좀 더 까다로운 부분을 살펴보죠. 가변 객체(예: 리스트나 딕셔너리)를 기본 인수로 사용하면 예상치 못한 동작이 발생할 수 있어요. 이렇게 하는 것을 보여드리죠:

def add_item(item, shopping_list=[]):
    shopping_list.append(item)
    return shopping_list

print(add_item("사과"))
print(add_item("바나나"))
print(add_item("채리"))

출력:

['사과']
['사과', '바나나']
['사과', '바나나', '채리']

놀라셨죠? 리스트가 각 호출마다 자라가네요. 이는 함수가 정의될 때 기본 리스트가 오직 한 번만 생성되기 때문입니다, 함수가 호출될 때마다는 아니라요.

이를 피하려면 None을 기본으로 사용하고, 함수 내에서 새로운 리스트를 만들 수 있습니다:

def add_item(item, shopping_list=None):
    if shopping_list is None:
        shopping_list = []
    shopping_list.append(item)
    return shopping_list

print(add_item("사과"))
print(add_item("바나나"))
print(add_item("채리"))

출력:

['사과']
['바나나']
['채리']

많이 나아졌죠! 이제 각 호출마다 새로운 리스트가 생성되어야 합니다.

파이썬 기본 인수 요약

이제 배운 것을 간단한 표로 정리해보죠:

개념 설명 예제
기본 인수 파라미터에 기본 값을 제공합니다 def greet(name, greeting="안녕"):
여러 기본 인수 함수는 여러 기본 인수를 가질 수 있습니다 def calculate_total(items, tax_rate=0.08, discount=0):
인수 순서 기본 인수보다 먼저 필수 인수를 정의해야 합니다 def func(required, optional=default):
가변 기본 인수 가변 객체를 기본 인수로 사용하지 마세요 None을 기본으로하고 함수 내에서 객체를 생성하세요
키워드 인수 함수를 임의의 순서로 이름付き 인수로 호출할 수 있습니다 calculate_total(items=[10, 20], discount=5)

그리고 여기까지! 여러분은 이제 파이썬의 기본 인수를 통해 파이썬 실력을 한 단계 업했습니다. 이러한 강력한 도구를 현명하게 사용하세요. 코드가 더 유연하고 쉽게 사용할 수 있게 하지만, 가변 기본 값에 주의하세요!

계속 연습하고, 호기심을 지켜요, 즐거운 코딩하세요! 언제가 될지 모르겠지만, 여러분도 파이썬을 전문가처럼 쓸 수 있을 거예요. 다음에 뵙겠습니다, 여러분의 친절한 이웃 CS 교사로서 안녕히 계세요!

Credits: Image by storyset