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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การทำ natural language processing ด้วยภาษา python
โดย wightfall พ 24 เม.ย. 2024 12:54 pm บอร์ด Python Knowledge
0
2
พ 24 เม.ย. 2024 12:54 pm โดย wightfall View Topic การทำ natural language processing ด้วยภาษา python
การเขียนโปรแกรมเชิงวัตถุด้วยภาษา python
โดย wightfall อ 23 เม.ย. 2024 4:13 pm บอร์ด Python Knowledge
0
22
อ 23 เม.ย. 2024 4:13 pm โดย wightfall View Topic การเขียนโปรแกรมเชิงวัตถุด้วยภาษา python
แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
โดย wightfall จ 22 เม.ย. 2024 3:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
33
จ 22 เม.ย. 2024 3:41 pm โดย wightfall View Topic แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
โดย จิ๊กโก๋ ส 20 เม.ย. 2024 2:29 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
3
158
อ 23 เม.ย. 2024 2:24 pm โดย mindphp View Topic ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
โดย internTk21 ศ 19 เม.ย. 2024 11:56 am บอร์ด MindPHP News & Feedback
1
51
ศ 19 เม.ย. 2024 12:15 pm โดย internTk21 View Topic แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
โดย eange08 ศ 19 เม.ย. 2024 9:56 am บอร์ด Programming - PHP
1
98
ศ 19 เม.ย. 2024 10:28 am โดย mindphp View Topic สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว tar, zip
โดย mindphp พ 17 เม.ย. 2024 7:42 pm บอร์ด Linux - Web Server
0
134
พ 17 เม.ย. 2024 7:42 pm โดย mindphp View Topic คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว  tar, zip
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
305
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line