[Python] Function Parameters

이동명·2021년 6월 9일
0

파이썬 함수의 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개의 댓글