Python Yield เทียบกับผลตอบแทน

Python Yield Vs Return



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

บทความนี้สรุปความแตกต่างระหว่างผลตอบแทนและผลตอบแทนพร้อมตัวอย่าง







ความแตกต่างระหว่างผลผลิตและผลตอบแทน

ในการเริ่มต้น มีความแตกต่างที่ชัดเจนมากมายระหว่างผลตอบแทนและผลตอบแทน เรามาคุยกันก่อนว่าสิ่งเหล่านี้คืออะไร



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

ตัวอย่างที่ 1: ผลตอบแทนเทียบกับผลตอบแทน

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



#โปรแกรมแสดงการทำงานของ return statement

#การกำหนดตัวแปรตัวเลข

num1=10

#การกำหนดตัวแปรตัวเลข

num2=ยี่สิบ

#การสร้างฟังก์ชันเพื่อดำเนินการคำนวณ

def คณิตศาสตร์OP():

#คำนวณมูลค่ารวม

กลับnum1+num2

#คำนวนส่วนต่าง

กลับnum1-num2

#คำนวนค่าการคูณ

กลับnum1*num2

#คำนวณค่าหาร

กลับnum1/num2

#เรียกฟังก์ชั่น

พิมพ์(คณิตศาสตร์OP())

เอาท์พุต





ในผลลัพธ์จะเห็นว่าฟังก์ชันส่งคืนเฉพาะค่าแรกและโปรแกรมจะถูกยกเลิก



ในการทำงานที่คล้ายคลึงกันด้วยคำสั่ง return หลายรายการ เราต้องสร้างฟังก์ชันที่แตกต่างกันสี่ฟังก์ชันสำหรับการดำเนินการทางคณิตศาสตร์แต่ละประเภท

#โปรแกรมแสดงการทำงานของ return statement

#การกำหนดตัวแปรตัวเลข

num1=10

#การกำหนดตัวแปรตัวเลข

num2=ยี่สิบ

#การสร้างฟังก์ชันเพื่อดำเนินการคำนวณ

def sumOP():

#คำนวณมูลค่ารวม

กลับnum1+num2

def ลบOP():

#คำนวนส่วนต่าง

กลับnum1-num2

def คูณOP():

#คำนวนค่าการคูณ

กลับnum1*num2

def ดิวิชั่นOP():

#คำนวณค่าหาร

กลับnum1/num2

#เรียกฟังก์ชันผลรวม

พิมพ์('มูลค่ารวมคือ: ',sumOP())

#เรียกฟังก์ชันการลบ

พิมพ์('ค่าความแตกต่างคือ:',ลบOP())

#เรียกฟังก์ชันการคูณ

พิมพ์('ค่าการคูณคือ:',คูณOP())

#เรียกฟังก์ชันหาร

พิมพ์('ค่าหารคือ: ',ดิวิชั่นOP())

เอาท์พุต

เราสามารถดำเนินการเลขคณิตหลายตัวเหล่านี้ภายในฟังก์ชันตัวสร้างเดียวพร้อมคำสั่งผลตอบแทนหลายรายการ

#โปรแกรมแสดงการทำงานของใบแจ้งยอด

#การกำหนดตัวแปรตัวเลข

num1=10

#การกำหนดตัวแปรตัวเลข

num2=ยี่สิบ

#การสร้างฟังก์ชันเพื่อดำเนินการคำนวณ

def คณิตศาสตร์OP():

#คำนวณมูลค่ารวม

ผลผลิตnum1+num2

#คำนวนส่วนต่าง

ผลผลิตnum1-num2

#คำนวนค่าการคูณ

ผลผลิตnum1*num2

#คำนวณค่าหาร

ผลผลิตnum1/num2

#เรียกฟังก์ชั่น

พิมพ์('กำลังพิมพ์ค่า:')

#using for loop เพื่อเข้าถึงค่าจากวัตถุตัวสร้าง

สำหรับฉันอยู่ในคณิตศาสตร์OP():

พิมพ์(ผม)

เอาท์พุต

ตัวอย่างที่ 2: ผลตอบแทนเทียบกับผลตอบแทน

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

ขั้นแรก ลองใช้ตัวอย่างนี้ในสคริปต์ Python ของเราด้วยคำสั่ง return

#การกำหนดรายการตัวเลข

รายการของฉัน=[10,ยี่สิบ,25,30,35,40,ห้าสิบ]

#การกำหนดฟังก์ชันเพื่อดำเนินการโมดูลัส

def mod(รายการของฉัน):

สำหรับฉันอยู่ใน myList:

#ทำการทำงานของโมดูลัส

ถ้า(ผม%10==0):

กลับผม

พิมพ์(ขัดต่อ(รายการของฉัน))

เอาท์พุต

คำสั่ง return จะส่งคืนเฉพาะหมายเลขแรกไปยังผู้โทรและยุติการทำงานของฟังก์ชัน

ตอนนี้ มาลองใช้ตัวอย่างเดียวกันในสคริปต์ Python ของเรากับคำสั่งผลตอบแทน

#การกำหนดรายการตัวเลข

รายการของฉัน=[10,ยี่สิบ,25,30,35,40,ห้าสิบ]

#การกำหนดฟังก์ชันเพื่อดำเนินการโมดูลัส

def mod(รายการของฉัน):

สำหรับฉันอยู่ใน myList:

#ทำการทำงานของโมดูลัส

ถ้า(ผม%10==0):

#งบผลตอบแทน

ผลผลิตผม

สำหรับฉันอยู่ใน mod(รายการของฉัน):

พิมพ์(ผม)

เอาท์พุต

บทสรุป

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