개발/파이썬
파라메터를 정의하는 새로운 방법
장모
2020. 12. 7. 14:35
3.8에 함수 파라메터를 정의하는 재밌는 방법이 추가됐다. '/'로 구분하면 그 뒤는 순서대로 넘기거나 키워드로 넘길 수 있다.
def func(posonly1, posonly2, /, positional_or_keyword): ...
예)
def func1(p1, p2, /, p3, p4):
print(p1, p2, p3, p4)
func1(1, 2, 3, 4)
func1(1, 2, p3=3, p4=4)
3.7에서도 비슷한 방법이 있었는데, '*'로 구분해 그 뒤는 무조건 키워드로 넘겨야한다.
def func(arg, *, kw_only1, kw_only2): ...
예)
def func2(p1, p2, *, p3, p4):
print(p1, p2, p3, p4)
# func2(1, 2, 3, 4) <- TypeError: func2() takes 2 positional arguments but 4 were given
func2(1, 2, p3=3, p4=4)