본문 바로가기
개발/파이썬

파라메터를 정의하는 새로운 방법

by 장모 2020. 12. 7.

 

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)

 

 

 

 

 

댓글