ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

     ถึงแม้ว่าการกำหนดอาร์กิวเมนต์ จะระบุเฉพาะค่าของมันก็ได้ เช่น 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 ในไพทอน ฟังชันก์ทำงานซ้ำเรียกตัวเอง

การใช้งานตัวแปรแบบ Global และ Local

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
มารู้จักประเภทของเรียงความภาษาอังกฤษ
โดย Kannaphat อ 24 ม.ค. 2021 1:24 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
5
อ 24 ม.ค. 2021 1:24 pm โดย Kannaphat
การตัดรายการขายสินทรัพย์ที่มีค่าเสื่อม (Assets)
โดย Jiratchaya ส 23 ม.ค. 2021 11:02 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
14
ส 23 ม.ค. 2021 11:02 pm โดย Jiratchaya
วิธีการเขียน Essay อย่างไรให้ตอบโจทย์ผู้อ่าน
โดย Kannaphat ส 23 ม.ค. 2021 6:01 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
12
ส 23 ม.ค. 2021 6:01 pm โดย Kannaphat
python2.7 ติดปัญหา Non-ASCII character
โดย chakirin.bfds ส 23 ม.ค. 2021 12:59 pm บอร์ด Programming - C/C++ & java & Python
4
32
ส 23 ม.ค. 2021 2:40 pm โดย chakirin.bfds
ติดปัญหา find หา input ไม่เจอในไฟล์ javascript
โดย eange08 ศ 22 ม.ค. 2021 4:39 pm บอร์ด JavaScript & Jquery Ajax
1
49
ส 23 ม.ค. 2021 3:04 pm โดย eange08
โปรแกรม Kdenlive ตัดเสียงรบกวนอย่างไรคะ
โดย Kannaphat ศ 22 ม.ค. 2021 3:08 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
22
ศ 22 ม.ค. 2021 4:55 pm โดย Kannaphat
ขอวิธีดึงข้อมูลใน list มาแสดงเป็นข้อความทีละบรรทัด
โดย chakirin.bfds พฤ 21 ม.ค. 2021 6:38 pm บอร์ด Programming - C/C++ & java & Python
3
35
ส 23 ม.ค. 2021 1:31 pm โดย mindphp
อะไรบ้างที่คุณต้องรู้เกี่ยวกับการ ‘ซ่อมนาฬิกา’ !
โดย totheworld พฤ 21 ม.ค. 2021 3:05 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
11
พฤ 21 ม.ค. 2021 3:05 pm โดย totheworld