Python yield

whitehousechef·2025년 6월 23일

for generator, not returning everything in one time

Normally function returns something like lets say a list that returns that list in one go.

But yield returns 1 value each time the function is called so it can be used for generator purposes.

return

def getAllPalindromes():
    palindromes = []
    # Generate millions of palindromes
    for i in range(1, 10):
        palindromes.append(i)
    # ... generate more ...
    return palindromes  # Memory explosion! 💥

all_palindromes = getAllPalindromes()  # Might use gigabytes of RAM

yield

def generatePalindromes():
    for i in range(1, 10):
        yield i  # Only one number in memory at a time

for palindrome in generatePalindromes():  # Uses almost no extra memory
    # Process one palindrome at a time
    if found_enough:
        break  # Stop generating more

0개의 댓글