[Python] Function Parameters

이동명·2021년 6월 9일

파이썬 함수의 parameter에 대해 알아보자

수학적 함수의 의미와 같이, 파이썬의 함수도 외부의 변수를 받아 그것과 관계되는 값을 리턴한다.

이때의 외부의 변수가 parameter이다.

parameter가 함수에 전달되는 방법

1. positional argument

  • 함수에 정의된 순서대로 parameter가 함수에 전달되는 형태
    def introduce(name, position):
        print(f"My name is {name}, I'm {position} developer") 

    introduce("dongmyeong", "back-end")
    # My name is dongmyeong, I'm back-end developer

2. keyword argument

  • 순서대로 parameter를 전달하는 대신, parameter 이름에 맞추어서 값을 전달하는 방식

  • 가독성을 향상시키며, 순서가 바뀌어 결과값이 바뀌는 오류를 방지할 수 있다.

    def introduce(name, position):
        print(f"My name is {name}, I'm {position} developer") 

    introduce(position="back-end", name="dongmyeong")
    # My name is dongmyeong, I'm back-end developer
  • positional argument와 같이 쓸 수 있지만, position 상으로 앞에있는 parameter를 keyword argument 뒤에 위치시킨다면 에러가 발생한다.
    def introduce(name, position):
        print(f"My name is {name}, I'm {position} developer") 

    introduce(position="back-end", "dongmyeong")
    > Traceback (most recent call last):
        File "python", line 1
      SyntaxError: positional argument follows keyword argument

3. default value parameter

  • 함수가 호출될 때 값이 넘어가지 않은 경우, default값이 자동으로 넘겨진다.
    def introduce(name="dongmyeong", position="back-end"):
    	print(f"My name is {name}, I'm {position} developer") 

    introduce()
    # My name is dongmyeong, I'm back-end developer
  • 단, default value parameter가 non-default value parameter보다 앞에 정의되면 SyntaxError가 발생한다.

    이는 non-default value가 뒤에있는 경우, 전달된 값이 default value인지 none-default value인지 결정 불가능하기 때문이다.

    def introduce(name="dongmyeong", position):
        print(f"My name is {name}, I'm {position} developer")

    > Traceback (most recent call last):   
        File "python", line 1 
    SyntaxError: non-default argument follows default argument

0개의 댓글