เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ฟังก์ชันที่รับ 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=____)
แก้ไขและรันโค้ด