Coding for KidsCoding for Kids
ระดับสร้างสรรค์ความท้าทายคู่มือครู
โหวตสำหรับฟีเจอร์
หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ

ฟังก์ชันขั้นสูง
ฟังก์ชันบางส่วน

วัตถุประสงค์

บรรจุและวางวัสดุก่อสร้างที่ถูกจัดส่งมาทางท่าเรือโดยใช้ฟังก์ชันแบบบางส่วน

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

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

from functools import partial

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

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

def weight(thread, cloth, material): return 2 * thread + 5 * cloth + material * 10 package = partial(weight, 4, 2)

สร้าง ฟังก์ชันแบบบางส่วน ชื่อ package ซึ่งถูกตั้งค่าด้วยกระบวนการที่คล้ายกับฟังก์ชัน lambda โดยใช้ partial() ในการเติมข้อมูลให้ฟังก์ชันและเพิ่มชื่อของฟังก์ชันรวมถึงกำหนดค่าอาร์กิวเมนต์คงที่สำหรับพารามิเตอร์ที่คุณต้องการกำหนด

อาร์กิวเมนต์ใดๆ จากฟังก์ชันเดิมที่คุณไม่ได้กำหนดไว้ จะกลายเป็นอาร์กิวเมนต์ที่จำเป็นต้องระบุเมื่อเรียกใช้ ฟังก์ชันแบบบางส่วน ในกรณีของ ฟังก์ชันแบบบางส่วน package() นั้นคืออาร์กิวเมนต์ material

เดินไปยัง X เครื่องหมายสีเข้มหน้ากล่องเพื่อหยิบวัสดุบรรจุ ใน X เครื่องหมายบนพรมสีเหลือง ให้ใช้ฟังก์ชัน collect() เพื่อเก็บ `

หนังสือโค้ด