부스트캠프 level1 1주차

TAEJUN YOUN·2022년 9월 20일
0

asterisk를 이용한 가변인자 (3-2강)

가변인자란?

함수의 parameter로 변수의 개수가 정해지지 않을 때 사용 가능한 인자

asterisk()기호를 사용하여 parameter를 표시 (args)

args로 입력된 값은 tuple로 사용된다.

가변인자는 마지막 파라미터 위치에 한 개만 사용 가능하다.

def asterisk(a, b, *args):
		return a, b, args
print(asterisk(1, 2, 3, 4, 5)
# (1, 2, (3, 4, 5))

키워드 가변인자

asterisk 두개(**)를 사용하여 함수의 파라미터를 표시한다.

입력된 값은 그냥 가변인자와 다른게 dict type으로 사용할 수 있다.

def kwargs_test(a, b, *args, **kwargs):
    print(a, b, args, kwargs)
kwargs_test(1, 2, 3, 4, 5, one=1, two=2, three=3)
# 1 2 (3, 4, 5) {'one': 1, 'two': 2, 'three': 3}

decorate 함수 (4-1강) - @로 표현됨

먼저 알아야 할 내용

  1. inner function

함수 내에 또 다른 함수가 존재하는 함수

def a(strs):
    def b():
        print('hello')
    b()
print(a('asdf'))
'''
hello
	None <--- a함수의 return 값이 존재하지 않음
'''
  1. closures: inner function이 return값으로 반환됨
def a(strs):
    def b():
        print('hello')

    return b

func = a('abc')
func()
'''
hello

'''
  1. decorator function

복잡한 클로져 함수를 간단하게 표현할 수 있다.

def outer(func):
    def inner(*args):
        print('inner')
        func(*args)
        print('inner')

    return inner

@outer
def hello(strs):
    print('hello {}'.format(strs))

hello('tj')

'''
inner
hello tj
inner

'''

위의 예시는 hello함수가 star함수의 인자로 들어간 것이다.

  • 출처 boostcamp ai tech 4기 python 강의(TEAMLAB 최성철교수님)
profile
Study and Share

0개의 댓글