Function Parameters - 1
Position Arguments
기본적인 방법으로 순서에 맞추어서 parameter
값을 전해주는 방법
def love_you(my_name, your_name):
print(f"{my_name} loves {your_name}")
love_you('정우성', '아이유')
Keyword Arguments
parameter
이름에 맞추어서 값을 전해주는 방법
Keyword arguments 방식으로 parameter 값을 전해주면 parameter
순서가 바뀌어도 상관이 없다.
또한 이름에 맞추어서 값을 넘기기 때문에 가독성도 높아진다.
def love_you(my_name, your_name):
print(f"{my_name} loves {your_name}")
love_you('정우성', your_name = '아이유')
Mixing positional arguments and keyword arguments
positional arguments 와 keyword arguments 를 혼용해서 사용할 수 있다.
다만, positional argument는 순서를 지켜줘야 하기 때문에 순서에 맞게 호출해야 한다.
def love_you(my_name, your_name):
print(f"{my_name} loves {your_name}")
love_you(your_name = '아이유', my_name = '정우성')
아래의 코드처럼 함수를 호출하면 positional arguments의 순서가 틀렸기 때문에 syntax error가 난다.
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
SyntaxError가 나는 이유
SyntaxError: positional argument follows keyword argument
'정우성' 라는 인자가 파라미터 안의 2번째 인자로 속해있기 때문에 your_name으로 들어가게 된다. 하지만 your_name에는 이미 '아이유'라는 인자를 넣어주었기 때문에 my_name 파라미터의 값은 채워지지 않아 에러가 발생하게 된다.
Parameter Default Value
함수의 parameter
에 default값을 정의해 줄 수 도 있다.
Default값이 정의된 parameter
는 함수가 호출될 때 값을 넘기지 않으면 default 값이 자동으로 넘겨지게 된다.
def love_you(my_name, your_name = '아이유'):
print(f"{my_name} loves {your_name}")
love_you("정우성")
주의해야 할 점은 default값이 정의된 parameter
는 항상 default값이 정의되지 않은 parameter
뒤에 선언해야 한다는 점이다.
만일 💡️ default value parameter를 non-default value parameter 앞에 선언하면 syntax error가 발생한다.
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
'언어 > Python' 카테고리의 다른 글
TIL16 | Python Modules & Packages, 절대경로와 상대경로 (0) | 2021.10.11 |
---|---|
TIL15 | Python Set과 Dictionary (0) | 2021.10.11 |
TIL14 | Python List와 Tuple (0) | 2021.10.11 |
TIL13 | Python Function - Arguments position (0) | 2021.10.10 |
TIL11 | Python 문법 (0) | 2021.10.10 |