return ทำให้ฟังก์ชันสิ้นสุดการทำงานและคืนค่าให้ผู้เรียก ฟังก์ชันที่คืนค่าเรียกว่า fruitful functions
ตัวอย่าง return
def sum(a, b):
return a + b
print(sum(5, 16)) # 21
Generators และ yield
Generators เป็น iterators ที่สร้างค่าแบบ lazy (on-the-fly) ไม่เก็บทั้งหมดในหน่วยความจำ ใช้ได้เพียงครั้งเดียว
mygenerator = (x*x for x in range(4))
for i in mygenerator:
print(i, end=' ') # 0 1 4 9
yield ใช้ในฟังก์ชันเพื่อคืนค่า generator
ตัวอย่าง yield
def createGenerator():
for i in range(4):
yield i * i
mygenerator = createGenerator()
print(next(mygenerator)) # 0
print(next(mygenerator)) # 1
print(next(mygenerator)) # 4
print(next(mygenerator)) # 9
print(next(mygenerator)) # StopIteration
แต่ละครั้ง next() จะคำนวณค่าถัดไป จนหมดจะโยน StopIteration