Python의 Return VS Yield — 짧은 만화

May 05 2023
# 'yield'가 파이썬 코드를 더 빠르게 만드는 이유
그리고 이 문제는 우리가 다루는 데이터가 많을수록 악화됩니다. 1000명이 줄을 서 있다면? 'return' 키워드 'yield' 키워드 return 키워드와 마찬가지로 yield 키워드는 함수의 출력을 나타냅니다.

그리고 이 문제는 우리가 다루는 데이터가 많을수록 악화됩니다. 1000명이 줄을 서 있다면?

'반환' 키워드

def add10(x):
  return x

x = add10(4)        # x = 14
def get_takoballs(orders):
  output = []
  for order in orders:
    output.append(f'{order} takoballs')
  return output

y = get_takoballs([4,6,8])
# y = ['4 takoballs', '6 takoballs', '8 takoballs']

'수익률' 키워드

return키워드 와 마찬가지로 yield키워드는 함수의 출력을 나타냅니다.

그러나 return키워드와 달리 하나의 함수는 yield여러 출력이 가능합니다. 키워드 yield는 실행 후 전체 기능을 중지하지 않습니다.

def testfunction():
  yield 4
  yield 5
  yield 6

for n in testfunction():
  print(n)

# 4
# 5
# 6
def get_takoballs(orders):
  for order in orders:
    yield f'{order} takoballs'

for food in get_takoballs([4, 6, 8]):
  print(food)

# 4 takoballs
# 6 takoballs
# 8 takoballs

타코 스탠드에 10000명의 고객이 있다고 가정해 보겠습니다(단지 3명이 아닌).

orders = # a list containing 10000 orders

def return_stall(orders):
  # process all 10000 orders first
  # then output all 10000 processed orders
  output = []
  for order in order:
    output.append(f'{order} takoballs')
  return output

def yield_stall(orders):
  # process 1 order, then output it
  # repeat til all 10000 orders are completed
  for order in orders:
    yield f'{order takoballs}'

기능 의 경우 yield_stall각 주문이 처리되는 즉시 양보(고객에게 제공)됩니다. 첫 번째 사람은 자신의 주문이 완료될 때까지 기다리기만 하면 됩니다.

결론

상당한 양의 데이터를 처리하는 경우 생성기 함수( 를 사용하는 함수 yield)를 사용하여 속도를 높이는 것이 좋습니다. 이것이 명확하고 도움이 되었기를 바랍니다!

몇 가지 최종 단어

이 이야기가 가치가 있고 약간의 지원을 보여주고 싶다면 다음과 같이 할 수 있습니다.

  1. 이 이야기를 위해 박수 50번 치기
  2. 내 링크를 사용하여 Medium 멤버십에 가입하세요 ($5/월에 무제한 Medium 스토리 읽기).

레벨업 코딩

우리 커뮤니티의 일원이 되어 주셔서 감사합니다! 가기 전에:

  • 이야기에 박수치고 작가 팔로우
  • 레벨업 코딩 출판물 에서 더 많은 콘텐츠 보기
  • 무료 코딩 면접 과정 ⇒ 과정 보기
  • 팔로우: 트위터 | 링크드인 | 뉴스 레터