Python - Function Parameters

황인용·2019년 12월 11일
1

Python

목록 보기
16/44

Function Parameters

함수는 input parameter를 받아서 return값으로 output으로 리턴해준다.
그리고 함수는 호출할때 parameter를 함수에 건내주어서 호출한다.

image.png

  • 함수의 parameter1과 parameter2는 love_you("정우성","아이유")라는 함수 호출의 parameter들을 순서대로 전달한다

Keyword Arguments

하지만 위 기본적인 Synatax 처럼 순서에 맞춰서 parameter를 전해주지 않고,순서상관없이 parameter 이름을 미리 맞추어 값을 전달할 수 있다.
이를 Keyword arguments 라고 한다

image.png

  • 순서가 바뀌어도 미리 parameter이름을 맞춰 값을 지정하였기때문에 가독성이 높아진다는 장점이 있다.

Mixing positional arguments and keyword arguments

순서를 맞추어 parameter 값을 전해주는 positonal agruments 방식과 keyword arguments 방식을 혼용해서 사용할 수 있다.

image.png

  • 다만, keyword arguments 순서는 바뀌어도 상관없지만, positonal arguments 부분은 순서를 지켜야 한다.

source code

def love_you(my_name, your_name): 
   print(f"{my_name} loves {your_name}") 
   
   love_you(your_name = "아이유", "정우성")

> Traceback (most recent call last):
    File "python", line 1
SyntaxError: positional argument follows keyword argument
  • keyword argumentpositional argument 보다 더 앞으로 위치되어 함수가 호출되었기 때문에 SyntaxError

Parameter Default Value

함수의 parameterdefault value을 정의해 줄 수도 있는데, default value이 정의된 paramter는 함수가 호출될때 값을 넘겨주지 않아도 된다.
값이 넘겨지지 않는 경우 default value이 자동으로 넘겨진다.

image.png

  • 다만, default value이 정의된 parameterdeafult value이 정의되지 않는 parameter보다 먼저 위치해 있으면 안된다.

source code

def love_you(my_name = "정우성", your_name): 
    print(f"{my_name} loves {your_name}") 
   
love_you("아이유")
> Traceback (most recent call last):   
    File "python", line 1 
SyntaxError: non-default argument follows default argument

non-default argument follows default argument

위 소스예제에서 ParameterDefault value가 선언되어 있지않고 Position agruments로 값을 전달하고자 할때, 당연히 비어있는 "your_name"이라는 parameterarguments가 전달되는 것이 아니라 Python은 "아이유"라는 값을 "my_name", "your_name" 중 어떤 parameter로 전달해야할지 모르는 상황이 온다.
따라서 defalt 값이 정해지지 않은 parameter는 함수에서 먼저 위치해주어야한다.

profile
dev_pang의 pang.log

0개의 댓글