지금까지 나왔던 함수들은 다음과 같았다.
아무 값도 전달받지 않는 함수
def greet():
print("반갑습니다")
값을 전달받는 함수
def adder(n1, n2):
r = n1 + n2
return r
print(adder(3, 4))
값을 반환하는 함수(return)
예를 들어 다음과 같이 만들어진 함수가 있을 때,
def who_are_you(name, age):
print("이름", name)
print("나이", age)
print(who_are_you('철수', 20))
print(who_are_you(age=20, name='철수'))
이러한 관점에서 봤을 때, print(~~, end='')의 end는 end라는 매개변수에 ''를 전달해왔던 것.
def who_are_you(name, age=0):
print("이름", name)
print("나이", age)
print(who_are_you('철수'))
함수를 만들 때 디폴트 값을 갖는 매개변수와 갖지 않는 매개변수가 함께 존재한다면 반드시 디폴트 값을 갖는 매개변수가 뒤에 와야 한다. 예를 들어 매개변수가 총 4개이고 그 중 2개가 디폴드 값을 갖는다면, 디폴트 값을 갖는 매개변수를 뒤쪽에 위치해야한다.
파이썬은 매개변수를 위해 별도의 메모리 공간을 할당하지 않고, 메모리 공간에 이름을 하나 더 붙이는 방식으로 매개변수가 전달되는 방식을 처리한다.