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

     Default Parameter หรือ พารามิเตอร์แบบมีค่าดีฟอลต์ คือการกำหนดค่าล่วงหน้าหรือค่าดีฟอลต์ให้กับมัน แทนที่เราต้องระบุค่าเดิมๆ ทุกครั้งที่เรียกฟังก์ชัน ซึ่งเราเรียกลักษณะดังกล่าวนี้ว่า Default Parameter โดยมีหลักการสำคัญ คือ พารามิเตอร์ตัวใดที่มีค่าดีฟอลต์ ให้กำหนดรูปแบบ ชื่อพารามิเตอร์=ค่าดีฟอลต์ หากในฟังก์ชันเดียวกัน มีทั้งพารามิเตอร์แบบมีค่าดีฟอลต์ และไม่มีค่าดีฟอลต์ ต้องจัดลำดับให้ตัวที่ไม่มีค่าดีฟอลต์อยู่ก่อนเสมอ ซึ่งเราได้พูดถึงกันไปแล้วในหัวข้อ Positional Argument ลำดับของอาร์กิวเมนต์ในไพทอน และเมื่อเรียกใช้ฟังก์ชัน หากจะใช้ค่าที่ตรงกับค่าดีฟอลต์ ก็ไม่จำเป็นที่จะต้องระบุค่าอาร์กิวเมนต์ลงไป ซึ่งในบทความนี้เราจะมาพูดถึงพารามิเตอร์แบบมีค่าดีฟอลต์ ในภาษาไพทอนกัน

     Parameter (พารามิเตอร์) คือข้อมูลที่รับจากภายนอกเข้ามาใช้งานฟังก์ชันต่างๆ โดยฟังก์ชันจะประมวลผลไปตามพารามิเตอร์ที่ได้รับมา ซึ่งผลลัพธ์ที่ได้ก็จะแปรเปลี่ยนไปตามค่าของพารามิเตอร์ที่ส่งเข้ามานั่นเอง ดังนั้นพารามิเตอร์จึงช่วยให้ฟังก์ชันต่างๆทำงานได้อย่างหลากหลาย

Default Parameter

     ถ้าพารามิเตอร์ตัวใดของฟังก์ชัน ที่เรามักกำหนดค่าใดค่าหนึ่งให้กับมันเป็นส่วนใหญ่ แทนที่เราจะต้องระบุค่าเดิมๆ ทุกครั้งที่เรียกใช้งานฟังก์ชันเหล่านั้น เราสามารถกำหนดให้เป็นค่าล่วงหน้าหรือค่า ดีฟอลต์ได้ ตัวอย่างเช่น

def net_pay(quantity, price, vat = 7):
    return (quantity * price * (1 + vat/100) )

a = net_pay(10,100)   #ใช้ค่าดีฟอลต์ คือ vat = 7
b = net_pay(10,100,7.5) #หากต้องการใช้ค่าอื่น ก็ให้ระบุตามปกติ
c = net_pay(price=10, quantity=100, vat=10)

ผลลัพธ์

ผลลัพธ์การใช้งาน default parameter
ผลลัพธ์ default parameter

     สิ่งที่สำคัญอีกหนึ่งสิ่งก็คือ ลำดับของพารามิเตอร์ หากในฟังก์ชันเดียวกัน มีทั้งพารามิเตอร์แบบมีค่าดีฟอลต์ และไม่มีค่าดีฟอลต์ ต้องจัดลำดับให้ตัวที่ไม่มีค่าดีฟอลต์อยู่ก่อนเสมอ

def net_pay(vat = 7,quantity, price):  #Error ต้องให้ตัวไม่มีค่าดีฟอลต์อยู่ก่อนเสมอ

ผลลัพธ์

ผลลัพธ์จากการระบุลำดับที่ไม่ถูกต้อง
ผลลัพธ์การระบุลำดับไม่ถูกต้อง

     เพียงเท่านี้เราก็สามารถกำหนดค่าเริ่มต้นหรือค่าดีฟอลต์ให้กับพารามิเตอร์ล่วงหน้าได้แล้ว ทำให้เราไม่จำเป็นต้องระบุค่าเดิมๆ ซ้ำไปมาหลายรอบทุกครั้งที่เรียกใช้งานฟังก์ชัน ซึ่งเราเรียกลักษณะการทำงานนี้ว่า Default Parameter นั่นเอง

 

 

ช่องทางการศึกษาเพิ่มเติมเกี่ยวกับ : Python

Positional Argument ลำดับของอาร์กิวเมนต์ในไพทอน

ลำดับความสำคัญของตัวดำเนินการใน Python operator Precedence

การกำหนดค่าให้ตัวแปร ชนิดต่างๆ ใน ไพทอน Assignment variable ยกเลิกตัวแปร

การสร้างฟังก์ชั่น ในไพทอน Python function Variable-length arguments

การสร้างฟังก์ชั่น ในไพทอน Python Defining function โดยมี Keyword Arguments

Chayapol
, Default Parameter พารามิเตอร์แบบมีค่าดีฟอลต์ - by บทเรียน Python,
0 1 0 5
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - สอบถามทำให้ mouse over ที่ไอคอนรูปวงกลม แล้วให้แสดงรูปที่เป็นข้อความขึ้น
โดย eange08 ศ 05 มี.ค. 2021 4:52 pm บอร์ด Joomla Dev
1
4
ศ 05 มี.ค. 2021 5:47 pm โดย tsukasaz
กลุ่มประเทศผู้ส่งออกข้าว
โดย jataz2 ศ 05 มี.ค. 2021 11:07 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
9
ศ 05 มี.ค. 2021 11:07 am โดย jataz2
Q - พอมี module หรือ plugin ที่เป็นพวก social อย่าง line, ig บ้างไหมค่ะ
โดย eange08 พฤ 04 มี.ค. 2021 5:21 pm บอร์ด Joomla Dev
1
7
พฤ 04 มี.ค. 2021 5:26 pm โดย tsukasaz
reboot เครื่องไม่ได้ครับ
โดย chakirin.bfds พฤ 04 มี.ค. 2021 12:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
30
พฤ 04 มี.ค. 2021 3:14 pm โดย chakirin.bfds
แก้ css ส่วน padding ด้วย override แล้วไม่เปลี่ยนตาม
โดย eange08 พ 03 มี.ค. 2021 4:43 pm บอร์ด Joomla Development
1
22
พ 03 มี.ค. 2021 4:47 pm โดย tsukasaz
Joomla PDPA ใช้ EB Sticky Cookie Notice โมดูล แสดงแจ้งเตือนการเก็บข้อมูล Cookie ของผู้ใช้งาน
โดย tsukasaz พ 03 มี.ค. 2021 4:39 pm บอร์ด Joomla Extension Review
0
21
พ 03 มี.ค. 2021 4:39 pm โดย tsukasaz
อัพเดทหรือยัง? ปรับปรุงเรื่องความปลอดภัย 9 จุด ใน Joomla 3.9.25
โดย tsukasaz พ 03 มี.ค. 2021 12:28 pm บอร์ด MindPHP News & Feedback
0
42
พ 03 มี.ค. 2021 12:28 pm โดย tsukasaz
B - เปิดหน้าเว็บด้วย template เป็น Shaper_megadeal_ii แล้ว Error 404
โดย eange08 พ 03 มี.ค. 2021 12:04 pm บอร์ด เว็บไซต์ Rnyard - Tester
2
7
พ 03 มี.ค. 2021 7:25 pm โดย tsukasaz