파이썬 강좌(초급)/6.함수

6.함수 - 3)기본값 & 키워드값 & 가변인자

파기차차 2024. 3. 10. 09:55
728x90
반응형
SMALL

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")

 

 

 

 

728x90
반응형
LIST