04 Python function - (2) function extension

처어리·2024년 1월 25일

python

목록 보기
32/36
post-thumbnail

02. function-extension


디폴트 매개변수

( Default Arguments Values , Default Parameter )

  • 함수의 매개변수에 기본값을 지정해서 정의한 함수입니다.
  • 함수를 호출할 때 인자값의 수가 고정되어 있지 않고 데이터를 한개, 두개 전달하는 함수도 있습니다.
    이러한 함수에 사용되어 있는게 디폴트 매개변수 입니다.
  • 호출부에서 넘어오는 인자값은 매개변수의 왼쪽에서부터 순서대로 받기 때문에, 디폴트 매개변수의 지정은 오른쪽에서부터 해야합니다.

def showMessage(str="hi"):
    print(str)
showMessage("안녕하세요..")
showMessage()


def sum_func(x1, x2, x3=100):
    result = 0
    result = x1 + x2 + x3
    return result
def display():
    sum = 0
    a, b, c = 10, 20, 30
    sum =  sum_func(a, b)
    print("매개변수 2개 :", sum)
    sum =  sum_func(a, b, c)
    print("매개변수 3개 :", sum)
display()


  • 키워드 인수 ( keyword Arguments )

    • 함수 호출시에 매개변수를 지정해서 값을 넘기는 방식입니다.
    • 매개변수가 여러개인 함수를 호출할 때, 일반적으로 하나씩 순서대로 전달됩니다.
    • 그러나 키워드 인수를 사용하면 순서에 상관없이 매개변수를 지정해서 값을 전달할 수 있습니다.
    def showPrint(str):
        print(str)
    showPrint(str="안녕하세요")
    print()



    def member(name, grade="일반"):
        print(f"{name} - {grade}")
    member("userA")
    member(grade="VIP", name="userB")



  • 가변 인자

    • 함수가 몇개의 인자를 받을지를 정하지 못했을 때 사용합니다.
    • 가변인수를 받을떄는 * 을 붙여서 설정합니다.
    def showData(*arg):
        print(arg)
        print(type(arg))    # 튜블로 값을 받아옴
        for n in arg:
            print(n)
        print()
    showData()

    showData(1)

    showData(1, 2, 6, 3)


    def totalData(*arg):
        print(arg)
        result = 0
        for n in arg:
            result += n
        return result
    tot = totalData(10, 20)
    print(f"합 : {tot}")

    tot = totalData(1, 20, 5, 7)
    print(f"합 : {tot}")



    • 튜플, 리스트를 가변인자로 처리할 수 있습니다.

    data_list = [ 1, 10, 100 ]
    totalData(*data_list)



  • 키워드 가변인자

    • 가변인자 처럼 사용하되 'key=value' 의 쌍으로 사용합니다.
    def keyFunc(**ka):
        print(type(ka))
        for key, value in ka.items():
            print(f"{key} - {value}")
        print()

    keyFunc(a=1)

    keyFunc(하나=1, 둘=2)

    data_dict = {'일': '1', '이':2, '삼':3}
    keyFunc(**data_dict)



익명 함수 ( 람다, lambda )

  • 함수에 이름을 만들지 않고 임시적으로 사용할 함수로 만들어 쓰는 형태입니다.
  • 사용
    lambda 인자 : 실행 코드
v = lambda v: v+1
print(v(10))

datas = ['5', 4, '8', '9', 1, 7, '3', 3.4, '4.5', 5.2]
  • error
 datas.sort()
 print(datas)
  • key 의 매개변수에 정렬기준을 float 으로 캐스팅해서 설정하는 람다함수 적용
datas.sort(key=lambda x: float(x))
print(datas)

0개의 댓글