함수 썸네일형 리스트형 Python기본 _ 제너레이터 이번 포스팅에서는 파이썬의 제너레이터의 대해서 살펴본다. 제너레이터의 사용새는 시간이 오래걸리고 단계적으로 사용되는 함수를 정의했다면, 이 함수를 단계적으로 실행하고 파악할 수 있는 방법이라고 보면 된다. 이것만 잘 활용해도 코딩을 하고, 테스팅하는데 매우 유용할 것 같다. def counter(num=10): for _ in range(num): yield 'run' def greeting(): yield 'Good morning' #파이썬에서는 yield라고 쓰면 제너레이터라고 판단 yield 'Good afternoon' yield 'Good night' g = greeting() # 제너레이터 실행 print(next(g)) print("@@@@") print(next(g)) print("@@@@.. 더보기 Python기본 _ 데코레이터 이번 포스팅은 함수의 시작과 끝, 혹은 함수의 내용들을 살펴볼 수 있는 '데코레이터'라는 방식에 대해서 살펴본다. 함수가 시작되고 끝나는지, 변수가 뭐가 들어가는지 등.... 의 대해서 알아보고 싶은 것들은 우선 함수로 만들고, 해당 함수를 @와 덧붙여서 지정해주면, 함수가 출력될때 해당 내용도 같이 출력되게 된다 모르고 있었던 사실이었는데, 굉장히 유용할 것 같다. def print_info(func): def wrapper(*args, **kwargs): print('Start') result = func(*args, **kwargs) print('End') return result return wrapper @print_info def add_num(a, b): return a+b r = add_n.. 더보기 Python 기본 _ **kwargs 저번 포스팅에서는 *args에 대해서 포스팅 했다. 함수의 변수로 여러 인수를 받을때 사용하는 변수명이였고, 이번에는 키와 벨류 값을 가지고 있는 변수를 여러개로 함수 변수로 받을때 사용되는 **kwargs에 대해서 예를 들어 보겠다. # 사전형 데이터를 받아서 출력할 경우 def menu(**kwargs): for k, v in kwargs.items(): print(k, v) d = {'entree': 'beef', 'drink': 'ice coffee', 'desert':'ice'} menu(**d) # args와 kwarge 동시에 사용도 가능 def menu(food, *args, **kwargs): print(food) print(args) print(kwargs) menu('food', 'm.. 더보기 Python기본 _ *args 파이썬에서 함수를 만들때 여러 인수를 사용할 경우가 있다. 특별히 중요하지 않지만 그래도 필요하다면 어쩔수 없이 함수 변수로 담아야 된다. 하지만 이런식으로 함수 변수가 길어질 경우 일일이 변수 지정하기가 번거로울 수 있다. 그떄 파이썬의 함수에 *args라는 변수를 선언하면 특별히 변수를 선언 안해도 함수 내에서 사용할 수 있다. def say_something(word, *args): print('word = ', word) for arg in args: print(arg) say_something("Hi", "Minsu", "Kang") 더보기 Python기본 _ 함수에서 디폴트 변수 선언할 때 주의점 이번 시간에서는 파이썬에서 함수를 만들때 변수의 디폴트 인자를 사용할때의 주의점을 소개한다. 파이썬의 경우 함수 변수에 정수나 실수 혹은 문자열의 경우 디폴트 인자로 써서 함수를 여러번 실행할 경우 그것을 인식하지만, 리스트의 경우 참조주소로 지정이 되기 때문에 디폴트로 인식을 한다 해도 함수를 여러번 사용할 경우 디폴트 인자로 사용되지 않는다. 따라서 리스트의 경우 디폴트 인자를 사용할 때는 다음과 같이 설정하여 함수를 만들 수 있다. def test_func(x, l=None): if l is None: l = [] # l이 None일 경우 새로운 리스트를 함수 내에서 생성한다 l.append(x) return l r = test_func(100) print(r) r = test_func(100) p.. 더보기 이전 1 다음