คำสั่ง return ทำให้ฟังก์ชัน python ออกและคืนค่าให้กับผู้เรียก วัตถุประสงค์ของฟังก์ชันโดยทั่วไปคือการรับอินพุตและส่งคืนบางสิ่ง คำสั่ง return เมื่อดำเนินการแล้ว จะยุติการดำเนินการของฟังก์ชันทันที แม้ว่าจะไม่ใช่คำสั่งสุดท้ายในฟังก์ชันก็ตาม
ฟังก์ชันที่คืนค่าบางครั้งเรียกว่าฟังก์ชันที่มีผล
ตัวอย่าง
รหัสที่กำหนดให้ผลลัพธ์ต่อไปนี้
def sum(a,b): return a+b sum(5,16)
ผลลัพธ์
21
เครื่องกำเนิดไฟฟ้า
ตัวสร้างคือตัววนซ้ำหรือแบบวนซ้ำได้ เช่น list และ tuples แต่คุณสามารถวนซ้ำได้เพียงครั้งเดียวเท่านั้น เป็นเพราะพวกเขาไม่ได้เก็บค่าทั้งหมดไว้ในหน่วยความจำ แต่จะสร้างค่าได้ทันที:
ตัวอย่าง
mygenerator = (x*x for x in range(4)) for i in mygenerator: print i,
ผลลัพธ์
0 1 4 9
เราไม่สามารถดำเนินการ i ใน mygenerator เป็นครั้งที่สองได้เนื่องจากตัวสร้างสามารถใช้ได้เพียงครั้งเดียว:พวกเขาคำนวณ 0 จากนั้นลืมไปและคำนวณ 1, 4 และสิ้นสุดการคำนวณ 9 ทีละตัว
ผลตอบแทน
yield เป็นคีย์เวิร์ดที่ใช้เหมือน return ยกเว้นฟังก์ชันจะคืนค่าตัวสร้าง
เราใช้รหัสต่อไปนี้เพื่อเข้าถึงผลตอบแทนจากตัวสร้างดังนี้
ตัวอย่าง
def createGenerator(): for i in range(4): yield i*i # this code creates a generator mygenerator = createGenerator() print(mygenerator) # mygenerator is an object! # for i in mygenerator: # print i, print(next(mygenerator)) print(next(mygenerator)) print(next(mygenerator)) print(next(mygenerator)) print(next(mygenerator))
ผลลัพธ์
<generator object createGenerator at 0xb71e27fc> 0 1 4 9 Traceback (most recent call last): File "yieldgen1.py", line 12, in <module> print(next(mygenerator)) StopIteration
คำอธิบาย
คำสั่งผลตอบแทนในตัวอย่างด้านบนสร้าง mygenerator สามารถใช้ได้เพียงครั้งเดียว เราใช้คำสั่ง next(mygenerator) ในการคำนวณ สามารถใช้ได้ครั้งเดียว:ครั้งแรกคำนวณ 0 จากนั้นลืมเกี่ยวกับมัน และครั้งที่สองคำนวณ 1 ครั้งที่สาม 4 และสี่คำนวณ 9 จากนั้นครั้งที่ห้า แสดงข้อผิดพลาด StopIteration เนื่องจากองค์ประกอบรายการหมดลง