ผลผลิตหลาม

Python Yield



Yield เป็นคีย์เวิร์ดในตัวของ Python ที่คืนค่าจากฟังก์ชัน การดำเนินการของฟังก์ชันไม่สิ้นสุด แต่จะคืนค่าไปยังผู้เรียกและรักษาสถานะการดำเนินการของฟังก์ชัน การดำเนินการของฟังก์ชันจะกลับมาทำงานต่อจากคำสั่งผลตอบแทนล่าสุด ผลผลิตช่วยให้เราสามารถสร้างลำดับของค่ามากกว่าหนึ่งค่า ใช้ภายในตัวฟังก์ชัน ฟังก์ชันที่มีคำสั่งผลตอบแทนเรียกว่าฟังก์ชันตัวสร้าง







มีข้อดีหลายประการเพื่อให้เกิดคำหลัก ตัวอย่างเช่น จะควบคุมการจัดสรรหน่วยความจำและบันทึกสถานะตัวแปรในเครื่อง อย่างไรก็ตาม มันเพิ่มความซับซ้อนของรหัส



บทความนี้อธิบายการใช้คีย์เวิร์ดผลตอบแทนพร้อมตัวอย่าง



ไวยากรณ์ของผลผลิต

ไวยากรณ์ผลตอบแทนนั้นง่ายและตรงไปตรงมา ผลตอบแทนเริ่มต้นด้วยคีย์เวิร์ดและไวยากรณ์ของผลตอบแทนดังนี้:





ผลผลิตค่า

ตัวอย่าง

ทีนี้มาดูตัวอย่างเพื่อทำความเข้าใจการใช้งานและการทำงานของคำสั่งผลตอบแทนกัน ตามเนื้อผ้า คีย์เวิร์ด return จะยุติการทำงานของโปรแกรมและส่งกลับค่าในตอนท้าย ในขณะที่ผลตอบแทนจะส่งคืนลำดับของค่า จะไม่เก็บค่าไว้ในหน่วยความจำและส่งกลับค่าไปยังผู้โทรในขณะใช้งาน ในตัวอย่างด้านล่าง ฟังก์ชันตัวสร้างถูกกำหนดเพื่อกำหนดปีอธิกสุรทิน การกระโดดคือปีที่หารด้วยสี่ลงตัวจะคืนค่าศูนย์เป็นส่วนที่เหลือ คีย์เวิร์ดผลตอบแทนจะส่งคืนค่าปีอธิกสุรทินให้กับผู้โทร เนื่องจากจะได้รับค่าของปีอธิกสุรทิน จะหยุดการทำงานของโปรแกรมชั่วคราว ส่งคืนค่า จากนั้นดำเนินการดำเนินการต่อจากตำแหน่งที่หยุดทำงาน

#ประกาศเครื่องปั่นไฟกำหนดปีอธิกสุรทิน
defleapfunc(รายการของฉัน):
สำหรับผมในรายการของฉัน:
ถ้า(ผม%4==0):
#ใช้ผลผลิต
ผลผลิตผม
#ประกาศรายชื่อปี
year_list=[2010,2011,2012,2016,2020,2024]
พิมพ์('การพิมพ์ค่าปีอธิกสุรทิน')
สำหรับNSในleapfunc(year_list):
พิมพ์(NS)

เอาท์พุต



ผลลัพธ์แสดงชุดปีอธิกสุรทิน

มาดูตัวอย่างอื่นที่ฟังก์ชันตัวสร้างให้ตัวเลขและสตริงต่างๆ

#ประกาศฟังก์ชั่นเครื่องกำเนิดไฟฟ้า
defmyfunc():
ผลผลิต 'เครื่องหมาย'
ผลผลิต 'จอห์น'
ผลผลิต 'เทย์เลอร์'
ผลผลิต 'อีวาน'
ผลผลิต 10
ผลผลิต ยี่สิบ
ผลผลิต 30
ผลผลิต 40
ผลผลิต ห้าสิบ
#โทรและวนซ้ำผ่านฟังก์ชันตัวสร้าง
สำหรับผมในmyfunc():
#พิมพ์ค่า
พิมพ์(ผม)

เอาท์พุต

ลองใช้ฟังก์ชันตัวสร้างเพื่อคำนวณและพิมพ์ค่าลูกบาศก์ของลำดับตัวเลข เรากำลังสร้างค่าคิวบ์จาก 1 ถึง 30

#ประกาศฟังก์ชันตัวสร้างเพื่อคำนวณค่าคิวบ์
defแคลคิว():
ชั่วโมง=1
#อนันต์ while loop
ในขณะที่ จริง:
#คำนวนลูกบาศก์
ผลผลิตวาล * วาล * วาล
#เพิ่มมูลค่าขึ้น 1
ชั่วโมง=วาล +1
พิมพ์('ค่าคิวบ์คือ: ')
#เรียกฟังก์ชั่นเครื่องปั่นไฟ
สำหรับผมในแคลคิว():
ถ้าผม>30:
หยุดพัก
พิมพ์(ผม)

เอาท์พุต

ผลลัพธ์แสดงค่าคิวบ์ที่น้อยกว่า 30

บทสรุป

Yield เป็นคีย์เวิร์ดในตัวของ Python ที่ไม่ยุติการทำงานของโปรแกรมและสร้างชุดค่าต่างๆ เมื่อเปรียบเทียบกับคีย์เวิร์ด return คีย์เวิร์ด yield จะสร้างค่าหลายค่าและส่งคืนให้กับผู้โทร บทความนี้จะอธิบายเกี่ยวกับผลตอบแทนของ Python พร้อมตัวอย่าง