Python function keyword-only and positional-only

기본 문법

def function(positional_only, /, flexible, *, keyword_only):
pass
  • / 앞: 위치 전용 – 순서대로만
  • /와 * 사이: 자유 – 둘 다 가능
  • * 뒤: 키워드 전용 – 이름=값으로만

키워드 전용 (*)

def connect(*, host: str, port: int):
pass
connect(host="localhost", port=8080) # ✓
connect("localhost", 8080) # ✗

위치 전용 (/)

def pow(x, y, /):
return x ** y
pow(2, 3) # ✓
pow(x=2, y=3) # ✗

혼합

def process(a, /, b, *, c):
pass
process(1, 2, c=3) # ✓
process(1, b=2, c=3) # ✓
process(a=1, b=2, c=3) # ✗ a는 위치 전용
process(1, 2, 3) # ✗ c는 키워드 전용

패턴 정리

목적문법
모두 자유def f(a, b, c)
c만 키워드 전용def f(a, b, *, c)
a만 위치 전용def f(a, /, b, c)
혼합def f(a, /, b, *, c)
모두 키워드 전용def f(*, a, b, c)

참고

  • PEP 3102 – Keyword-Only Arguments (Python 3.0)
  • PEP 570 – Positional-Only Parameters (Python 3.8)

댓글 남기기

WordPress.com 제공.

위로 ↑

워드프레스닷컴으로 이처럼 사이트 디자인
시작하기