산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수

파이썬 함수 인자 마스터하기

기본값, 키워드, 가변 인자로 가변 개수 인자를 받는 함수를 설계해 더 깔끔하고 적응력 있는 코드를 작성하세요.

영상: 파이썬 함수 인자: 위치, 키워드, 기본값

인자(Arguments)

사용자 정의 함수 주제에서 함수 정의와 호출을 다뤘습니다. 예상 시그니처와 맞지 않는 호출은 에러 발생. 예:

def greet(name, msg):
    """이 함수는 제공된 메시지로 사람에게 인사합니다."""
    print("Hello", name + ", " + msg)
greet("Monica", "Good morning!")

출력

Hello Monica, Good morning!

greet() 함수는 두 매개변수 받음. 올바른 인자 개수로 호출 시 원활; 아니면 TypeError와 명확한 메시지.

>>> greet("Monica") # 인자 1개만
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet() # 인자 없음
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

가변 함수 인자

파이썬은 가변 개수 인자를 받는 유연한 방법을 제공합니다. 대표적 세 패턴을 다룹니다.

파이썬 기본 인자(Default Arguments)

매개변수에 대입 연산자(=)로 기본값 줄 수 있음. 다음 예제는 선택적 메시지 기본값을 "Good morning!"으로 설정:

def greet(name, msg="Good morning!"):
    """
    이 함수는 제공된 메시지로 사람에게 인사합니다.
    메시지가 제공되지 않으면 "Good morning!"이 기본값.
    """
    print("Hello", name + ", " + msg)
greet("Kate")
greet("Bruce", "How do you do?")

출력

Hello Kate, Good morning!
Hello Bruce, How do you do?

이 정의에서 name은 필수, msg는 선택. 기본 인자가 있으면 이후 모든 매개변수도 기본값 필요; 아니면 SyntaxError.

def greet(msg = "Good morning!", name): pass
SyntaxError: non-default argument follows default argument

파이썬 키워드 인자(Keyword Arguments)

파이썬은 호출자가 인자 이름을 지정해 위치 순서 유연하게 허용. 같은 greet() 함수를 이렇게 호출 가능:

# 키워드 인자 2개
greet(name = "Bruce", msg = "How do you do?")
# 순서 바꿔도 됨
greet(msg = "How do you do?", name = "Bruce")
# 위치 1개, 키워드 1개
greet("Bruce", msg = "How do you do?")

위치/키워드 인자 혼합은 모든 위치 인자가 키워드 인자 앞에 올 때만 허용; 아니면 SyntaxError.

greet(name="Bruce","How do you do?")
SyntaxError: non-keyword arg after keyword arg

파이썬 가변 인자(Arbitrary Arguments)

설계 시 인자 개수를 모를 때 별표(*)로 튜플로 캡처:

def greet(*names):
    """전달된 튜플의 각 이름에 인사."""
    for name in names:
        print("Hello", name)
greet("Monica", "Luke", "Steve", "John")

출력

Hello Monica
Hello Luke
Hello Steve
Hello John

함수 내부에서 names는 전달된 모든 인자를 담은 튜플로, 순회나 필요 처리가 가능.

python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 람다 함수: 익명 함수 실전 가이드
  5. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  6. Python 제너레이터: 효율적 이터레이션과 고급 활용
  7. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  8. Python 데코레이터 마스터하기: 전문 기법으로 함수 강화
  9. Python strip() 메서드 완전 정복: 종합 가이드와 실전 예제
  10. 파이썬 람다 함수 마스터하기: 실용 예제 & 모범 사례