목차
- 이전 포스팅의 파이썬 코드 uuid4 모듈 활용하여 UUID 랜덤 생성 예제 학습 링크
- 이전 포스팅의 파이썬 코드 re 모듈 활용 정규표현식으로 주민등록번호 파싱하기 예제 학습 링크
- 이전 포스팅의 파이썬 코드 enum 자료구조 선언 방법 및 활용 예제 학습 링크
- 파이썬 코딩 언어 Yield 문법 활용하여 값 반환 전 sleep으로 반환 지연 예제
- 파이썬 코딩 언어 generator에서 yield 사용했을 때와 안했을 때 값 반환 지연 예제
이전 포스팅의 파이썬 코드 uuid4 모듈 활용하여 UUID 랜덤 생성 예제 학습 링크
안녕하세요 오늘 포스팅에서는 파이썬 코드에서 yield 문법 사용중 sleep 함수로 값의 반환을 일부 시간 지연시키는 예제에 대해 알아보도록 하겠습니다. 우리가 흔히 yield와 같은 파이썬의 특수한 문법을 사용하지 않으면 for 반복문을 통해 예상되는 반환값을 배열로 일괄 생성하여 반환하여야합니다.
이러한 구조의 문제는 반환 값을 생성하는 시간이 오래걸리면 걸릴 수록 그 모든 시간을 기다려야 한다는 것입니다. 예를들어 반환 값 5개 생성하는데 1개당 1초가 걸린다면 이 함수를 호출한 밖의 함수는 반환값을 얻기 위해 5초를 기다려야합니다. 하지만 yield 문법을 사용하면 1개의 반환값을 얻어내는데 1초만 기다리면됩니다. 오늘 포스팅 예제를 학습하기에 앞서 파이썬 코드에서 uuid4 모듈을 사용하여 UUID를 랜덤으로 생성하는 방법을 학습해보세요. 아래킄 해당 포스팅의 링크입니다.
2023.10.31 - [Python] - [Python/Linux] 파이썬 UUID 랜덤 생성 예제(uuid4, UUID)
이전 포스팅의 파이썬 코드 re 모듈 활용 정규표현식으로 주민등록번호 파싱하기 예제 학습 링크
다음으로 이전 포스팅에서는 파이썬 코드에서 re 정규표현식 모듈을 사용하여 긴 장문의 문자열이 있을 때 이 안에 있는 주민등록번호 패턴을 분석하여 주민등록 번호만 가져오는 방법과 예제를 알아보았습니다. 정규표현식은 다양한 패턴을 사용하여 문자의 패턴을 분석할 수 있는 모듈입니다. 주민등록번호 뿐만 아니라 전화번호와 같은 문자열들을 가져오는 방법도 궁금하시다면 아래 링크를 참고하여 포스팅에 포함되어있는 파이썬의 re 모듈로 주민등록번호 파싱하기 예제를 학습해주세요.
2023.10.31 - [Python] - [Python/Linux] 파이썬 정규표현식 주민등록번호 및 전화번호 찾기 예제(re, regular exp)
이전 포스팅의 파이썬 코드 enum 자료구조 선언 방법 및 활용 예제 학습 링크
마지막으로 이전 포스팅에서는 파이썬 코드에서 enum 자료구조를 선언하는 방법과 활용하는 예제에 대해 알아보았습니다. enum이란 나열 자려구조로서 특정 인덱스에 해당하는 값을 의미를 부여하여 개발자가 조금더 인덱스 구조로서 프로그래밍을 할 수 있도록 도와주는 문법입니다. java와 C에서도 활용되고 있습니다. 만약 파이썬 프로그래밍중에 enum과 같은 나열식 자료구조를 활용해야할 필요가 있으시다면 아래 링크를 참고하여 학습해주세요.
2023.10.27 - [Python] - [Python/Linux] 파이썬 Enum 자료구조 선언 및 활용 예제
파이썬 코딩 언어 Yield 문법 활용하여 값 반환 전 sleep으로 반환 지연 예제
아래는 파이썬 코드에서 Yield 문법을 활용하여 값을 반환하기 전에 sleep 으로 강제로 값의 반환 지연을 일으키는 예제입니다. 함수 호출자에서 각 반환값 1개를 얻어내는데 1초의 지연이 생깁니다.
import time
def delayed_yield_example(n):
for i in range(n):
yield i
time.sleep(1) # 1초 동안 대기
gen = delayed_yield_example(5)
for _ in range(5):
try:
value = next(gen)
print(value)
except StopIteration:
break
파이썬 코딩 언어 generator에서 yield 사용했을 때와 안했을 때 값 반환 지연 예제
아래는 파이썬 코드에서 generator에서 yield로 반환값을 반환하지 않는 예제입니다. 특정 함수 각 반환값을 만들어내는데 1초의 시간 지연이 걸릴 때, 5개의 반환값을 모두 생성해는데 5초가 걸려 반환되는 예제입니다.
import time
def delayed_array_example(n):
result = []
for i in range(1, n + 1):
result.append(i)
time.sleep(1) # 1초 동안 대기
return result
values = delayed_array_example(5)
for value in values:
print(value, end=' ')