ถึงแม้ว่าการกำหนดอาร์กิวเมนต์ จะระบุเฉพาะค่าของมันก็ได้ เช่น x('Nai', 22, False) ซึ่งถ้าเราดูเฉพาะส่วนนี้ อาจเข้าใจได้ยากว่าข้อมูลในบางค่านั้นหมายถึงอะไร ดังนั้น เพื่อให้เกิดความชัดเจนยิ่งขึ้น เราสามารถนำชื่อพารามิเตอร์มาเขียนกำกับไว้ที่ค่าของอาร์กิวเมนต์แต่ละตัวหรือเพียงบางตัวก็ได้ สำหรับในภาษาไพทอนจะเรียกกรณีนี้ว่า Keyword Argument นั่นเอง แต่ในภาษาอื่น เช่น Swift จะเรียกว่า Argument Label และในบทความนี้เราจะมาพูดถึงการนำชื่อพารามิเตอร์มาเขียนกำกับไว้ที่ค่าของอาร์กิวเมนต์ หรือที่เราเรียกว่า Keyword Argument ในภาษาไพทอนกัน
โดยจะมีรูปแบบการใช้งานดังนี้
x(name='Nai', age=22, married=False) #ชื่อพารามิเตอร์=ค่าอาร์กิวเมนต์
Keyword Argument
สำหรับภาษาไพทอนจะเรียกชื่อพารามิเตอร์ที่เขียนกำกับลงไปในกรณีนี้ว่า Keyword Argument ซึ่งก็คือ คำที่บ่งบอกว่าเป็นข้อมูลของพารามิเตอร์ตัวไหนนั่นเอง ซึ่งข้อกำหนดที่สำคัญของ Keyword Argument จะมีดังนี้
1. Keyword Argument ต้องเป็นคำที่นำมาจากชื่อของพารามิเตอร์ของฟังก์ชันนั้นๆ และเขียนด้วยลักษณะตัวอักษรที่ตรงกันทุกตัว
2. หากระบุคีย์เวิร์ดให้กับอาร์กิวเมนต์ทุกตัว ก็ไม่จำเป็นต้องจัดเรียงลำดับอาร์กิวเมนต์ให้ตรงกับลำดับของพารามิเตอร์ เพราะมีตัวที่บ่งบอกข้อมูลอยู่แล้ว
3. แต่ถ้าหากเราระบุคีย์เวิร์ดให้กับอาร์กิวเมนต์เพียงตัวเดียว จะมีข้อกำหนดย่อยที่เราต้องตรวจสอบเพิ่ม คือ
3.1 ต้องวางอาร์กิวเมนต์ทุกตัวที่ไม่ระบุคีย์เวิร์ดเอาไว้ข้างหน้าตัวที่ระบุคีย์เวิร์ดทั้งหมด
3.2 ต้องจัดเรียงลำดับอาร์กิวเมนต์ที่ไม่ระบุคีย์เวิร์ดให้ตรงกับลำดับของพารามิเตอร์
3.3 อาร์กิวเมนต์ที่ระบุคีย์เวิร์ดสามารถสลับตำแหน่งได้ เพราะมีคีย์เวิร์ดเป็นตัวบ่งบอกข้อมูลอยู่แล้ว
ตัวอย่างการใช้งาน
def x(name, age, gender, number ):
print(name, age, gender, number )
x(gender='Male', name='Nai', age=22, number=37)
ผลลัพธ์
ซึ่งผลลัพธ์ที่ออกมา ก็จะออกมาตามลำดับที่เราได้ทำการกำหนดเอาไว้ หรือสามารถสรุปได้ว่าลำดับหรือตำแหน่งของอาร์กิวเมนต์ ไม่มีผลอะไรถ้าเราระบุคีย์เวิร์ดให้กับอาร์กิวเมนต์เหล่านั้นทุกตัว
แตถ้าหากเราไม่ได้กำหนดคีย์เวิร์ดให้กับทุกตัวและระบุตำแหน่งผิดก็จะทำให้เกิดเออเร่อได้ หรือถ้าหากไม่เออเร่อ ก็อาจจะทำให้ผลลัพธ์ที่ออกมานั้นผิดคาดได้ เพราะถูกตีความหมายของผลลัพธ์ผิดจากตำแหน่งนั่นเอง เช่น
x(gender='Male', name='Nai', number=37, age=22)
ซึ่งผลลัพธ์ที่ออกมาจะไม่เกิดเออเร่อ แต่ให้ผลลัพธ์ที่ผิดพลาด เพราะถูกตีความหมายว่า name = 22 , age = 'Nai' นั่นเอง ซึ่งหากตัวที่ระบุคีย์เวิร์ดมีหลายตัว เราสามารถสลลับตำแหน่งกันได้ แต่ต้องให้ตัวที่ไม่ได้ระบุอยู่ข้างหน้าเสมอ
ช่องทางศึกษาเพิ่มเติมเกี่ยวกับ : Keyword Argument
Positional Argument ลำดับของอาร์กิวเมนต์ในไพทอน
Default Parameter พารามิเตอร์แบบมีค่าดีฟอลต์
Variadic Parameter พารามิเตอร์ที่กำหนดค่ากี่จำนวนก็ได้
การเรียกใช้ฟังก์ชันแบบ Recursion ในไพทอน ฟังชันก์ทำงานซ้ำเรียกตัวเอง