1) 기본값이 뭐에요?
인자값이 없는 경우 기본으로 들어가는 값을 말합니다.
보통 함수를 호출 시 함수에 정의된 인자의 갯수 만큼 호출해야 하며, 그렇지 않으면 에러가 발생합니다.
하지만 아래 코드와 같이 함수 정의 부분에 기본값(예: age=17)을 주면 함수 호출시 인자의 갯수와 함수에 정의 된 인자의 갯수가 다르더라도 에러가 발생하지 않고 잘 실행 됩니다.
아래 코드는 함수 호출시 'name'만 인자로 던지고 있으나, age와 main_lang가 기본값으로 설정되어 있어 잘 실행되는 것을 볼 수 있습니다.
def profile(name, age=17, main_lang="파이썬"):
print("이름 : {0}\t나이 : {1}\t주 사용 언어: {2}" \
.format(name, age, main_lang))
profile("유재석")
profile("김태호")
2) 키워드값이 뭐에요?
함수 호출 시 함수에 정의 된 인자값의 순서에 관계없이 인자값을 전달할때 사용하며, 호출 시 변수에 인자값을 지정하여 사용하는 방식입니다.
보통 함수를 호출 시 함수에 정의된 인자의 순서와 호출 시 인자의 순서가 동일해야 하며, 그렇지 않으면 에러가 발생합니다.
하지만 아래 코드와 같이 함수 호출 시 변수에 값을 지정하여 호출하면 순서에 상관없이 함수 호출이 가능합니다.
아래 코드는 함수 호출시 main_lang 인자 부터 호출하고 있으나, 해당 변수에 값을 지정( main_lang="자바" )하고 있으므로 별다른 에러 없이 잘 실행되는 것을 알 수 있습니다.
예) profile(main_lang="자바", age=25, name="김태호")
def profile(name, age, main_lang):
print(name, age, main_lang)
profile(name="유재석", main_lang="파이썬", age=20)
profile(main_lang="자바", age=25, name="김태호")
3) 가변인자가 뭐에요?
함수 정의 시 가변인자에 *(애스터리스크)를 사용하며, 함수 호출 시 임의의 갯수의 인자를 넣을 수 있게 하는 기능입니다.
이 경우 함수 호출 시 인자의 갯수와 함수 정의 시 인자의 갯수를 다르게 사용하는 것이 가능합니다.
아래 코드에서 정의된 함수 profile()의 '*langs'인자가 가변인자이며, 함수 호출 시 이 가변인자에 다수의 인자를 할당할 수 있습니다.
아래 코드 예시에서는 *langs 가변인자에 함수 호출 시 5개의 인자("Python", "Java", "C", "C++", "C#")를 넘겨 주고 있으며, for문을 이용하여 이를 출력하고 있습니다.
def profile(name, age, *langs):
print("이름 : {0}\t나이 : {1}\t".format(name, age), end=" ")
for lang in langs:
print(lang, end=" ")
print()
profile("유재석", 20, "Python", "Java", "C", "C++", "C#")
profile("김태호", 25, "Kotlin", "Swift")
'파이썬 강좌(초급) > 6.함수' 카테고리의 다른 글
6.함수 - 4)지역(로컬)변수 & 전역(글로벌)변수 (0) | 2024.03.10 |
---|---|
6.함수 - 2)인자값 & 리턴값 (0) | 2024.03.10 |
6.함수 - 1)개요 (0) | 2024.03.10 |