Python Basics - Function Parameters(1)

Jayson Hwang·2022년 4월 27일
0

05. Function Parameters

Parameter로 input받아서 return값을 output으로 리턴.



📌 05-1. Positional Argument

순서에 맞춰서 Parameter 값을 전달

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

#"정우성 loves 아이유"

if love_you("아이유", "정우성)으로 순서를 바꾸어 입력한다면,

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

#"아이유 loves 정우성"


📌 05-2. Keyword arguments

앞에 쓰여진 keyword 단어처럼 이름을 지정하여 parameter 값을 전달

def love_you(my_name, your_name) :
	print(f"{my_name} loves {your_name}")

love_you(your_name="아이유",my_name="정우성")

# "정우성 loves 아이유"


순서와 다르게 함수를 호출하려는 인자에 your_name="아이유"my_name="정우성"으로 KEYWORD 지정하였더니, 순서를 바꾸어도 호출이 제대로됨

Keyword arguments를 사용하면,

🎯 코드의 가독성이 높아진다.
🎯 순서가 엉켜서 에러가 발생할 확률이 적어진다.



📌 05-3. Mixing arguments(Positional + Keyword)

def love_you(my_name, your_name) :
	print(f"{my_name} loves {your_name}")

love_you("정우성", your_name = "아이유")

# "정우성 loves 아이유"

if love_you(your_name="아이유","정우성")으로 순서를 바꾸어 입력한다면,

def love_you(my_name, your_name) :
	print(f"{my_name} loves {your_name}")

love_you(your_name="아이유","정우성")

# SyntaxError: positional argument follows keyword argument

위와 같이 에러가 발생한다.

순서를 꼭 지켜야하는 positional argument를 순서에 맞춰준 후에 keyword argument를 사용해야함



📌 05-4. Parameter Default Value

defult값을 정의하면 함수 호출할 때 인자에 값이 없어도 출력할 수 있다. 값이 넘겨지지 않은 경우에는 default로 지정해준 값이 자동으로 전해진다.

def love_you(my_name, your_name="신민아") :
	print(f"{my_name} loves {your_name}")

love_you("정우성")

# 정우성 loves 아이유

하지만, parameter에서 default value를 정해줄 때도 순서가 매우 중요!

만약 아래처럼 default 값이 정의된 parameterdefault 값이 정의되지 않은 parameter 보다 먼저(앞에) 위치하면,

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


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

에러 발생

profile
"Your goals, Minus your doubts, Equal your reality"

0개의 댓글