십대를 위한 코딩/십대를 위한 파이썬

15. 함수 인자 활용과 모듈 개념 이해

forSilver 2025. 4. 5. 15:50
반응형

📘 Day 15. 함수 인자 활용과 모듈 개념 이해


1. 함수 설계 시 고려 순서

  1. 무슨 기능을 수행할지 결정
  2. 호출 시 전달받을 인수(parameter) 결정
  3. 결과를 return할지 여부 결정

2. 함수의 인수(Argument & Parameter)

용어 설명

Parameter 함수 정의 시 사용된 변수
Argument 함수 호출 시 전달하는 값

3. 인수 전달 방식

전달 방식 특징

Call by Value 값을 복사하여 전달 (불변 자료형: int, float, str, tuple)
Call by Reference 참조(메모리 주소)를 전달 (가변 자료형: list, dict, set)
Call by Object 파이썬에서 사용되는 방식. 전달된 객체의 특성에 따라 동작

예시

def modify_list(my_list):
    my_list.append(4)

lst = [1, 2, 3]
modify_list(lst)
print(lst)  # [1, 2, 3, 4]

→ list는 가변 자료형이라 함수 안에서 변경하면 원본에도 영향


4. 변수의 유효 범위 (Scope)

변수 유형 위치 접근 가능 범위

지역 변수 함수 내부 함수 내부에서만 사용 가능
전역 변수 함수 외부 스크립트 전체에서 접근 가능
x = 10  # 전역 변수

def func():
    global x
    x = 20

func()
print(x)  # 20

전역 변수는 global 키워드를 통해 함수 내부에서 수정 가능


5. 다양한 인수의 형태

✅ 기본 인수 (default argument)

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

greet()           # 친구님, 안녕하세요!
greet("철수")      # 철수님, 안녕하세요!

기본값을 지정한 인수는 항상 오른쪽부터 작성


✅ 키워드 인수 (keyword argument)

def introduce(name, age):
    print(f"이름: {name}, 나이: {age}")

introduce(age=25, name="지우")  # 순서 상관없이 호출 가능

✅ 가변 인수 (variable-length argument)

🌟 *args : 여러 개의 인수를 튜플 형태로 받음

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

print(add_all(1, 2, 3))  # 6

🌟 **kwargs : 여러 개의 키워드 인수를 딕셔너리로 받음

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

show_info(name="지민", age=20)

6. 모듈(Module) 개념 예고

  • 함수들을 모아놓은 .py 파일
  • 재사용성과 코드 분리를 위한 좋은 방식
  • 다음 차시에서 자세히 다룸

✅ 오늘의 정리

항목 내용

인수 유형 기본, 키워드, 가변 인수 (*args, **kwargs)
자료형에 따른 전달 방식 불변 자료형: 복사 / 가변 자료형: 참조 전달
변수 범위 지역 변수, 전역 변수 (global 키워드 주의)
함수 설계 단계 기능 결정 → 인수 → 반환값
재사용을 위한 방법 함수 → 모듈 → 패키지

다음 시간에는 모듈과 패키지, 그리고 객체와 클래스의 기초를 배웁니다.
이제부터는 파이썬의 구조적 프로그래밍을 넘어 객체지향적 사고로 확장할 준비를 하게 됩니다.