ฟังก์ชันที่รับ keyword argument แบบยืดหยุ่น (**kwargs)
มาต่อยอดจากสิ่งที่เรียนรู้เกี่ยวกับ argument แบบยืดหยุ่นกันต่อ — ใช้ *args มาแล้ว ตอนนี้จะมาลอง **kwargs กัน! สิ่งที่ทำให้ **kwargs แตกต่างออกไปคือ มันช่วยให้ส่ง keyword argument จำนวนเท่าไรก็ได้เข้าไปในฟังก์ชัน จากวิดีโอก่อนหน้า จะเห็นว่าภายในนิยามฟังก์ชัน kwargs จะถูกเก็บเป็น dictionary
เพื่อให้เข้าใจแนวคิดนี้ได้ชัดขึ้น แบบฝึกหัดนี้จะใช้ **kwargs เพื่อนิยามฟังก์ชันที่รับ keyword argument ได้แบบยืดหยุ่น โดยฟังก์ชันนี้จำลองระบบรายงานสถานะแบบง่าย ที่แสดงสถานะของตัวละครในภาพยนตร์
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้น: การเขียนฟังก์ชัน
คำแนะนำการฝึกหัด
- เติม header ของฟังก์ชันด้วยชื่อ
report_statusโดยรับ argument แบบยืดหยุ่นเพียงตัวเดียวคือ**kwargs. - วนซ้ำผ่าน key-value pair ของ
kwargsเพื่อแสดงผล key และ value โดยคั่นด้วยเครื่องหมายโคลอน ':'. - ในการเรียก
report_status()ครั้งแรก ให้ส่ง keyword-value pair ดังนี้:name="luke",affiliation="jedi"และstatus="missing". - ในการเรียก
report_status()ครั้งที่สอง ให้ส่ง keyword-value pair ดังนี้:name="anakin",affiliation="sith lord"และstatus="deceased".
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define report_status
def ____(____):
"""Print out the status of a movie character."""
print("\nBEGIN: REPORT\n")
# Iterate over the key-value pairs of kwargs
for ____, ____ in kwargs.items():
# Print out the keys and values, separated by a colon ':'
print(____ + ": " + ____)
print("\nEND REPORT")
# First call to report_status()
# Second call to report_status()
report_status(name=____, affiliation=____, status=____)