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

     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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ทริป กางเต็นท์ ใกล้กรุงเทพ
โดย milk2533 จ 23 พ.ย. 2020 1:04 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
12
จ 23 พ.ย. 2020 1:04 pm โดย milk2533
- ให้เขียนประวัติ และ Job description ที่เคยทำมาแต่ละบริษัท โดยระบุประเภทธุรกิจที่เคยทำมา
โดย milk2533 จ 23 พ.ย. 2020 11:26 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
1
13
จ 23 พ.ย. 2020 4:34 pm โดย milk2533
list ความรู้ที่มี ว่าเคยเรียน หรือ เคยทำอะไรมาบ้าง
โดย milk2533 จ 23 พ.ย. 2020 11:26 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
3
22
จ 23 พ.ย. 2020 7:03 pm โดย milk2533
Work's on Hand กฤตวรรณ อาทิตย์ตั้ง M115
โดย milk2533 จ 23 พ.ย. 2020 11:24 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
0
3
จ 23 พ.ย. 2020 11:24 am โดย milk2533
note ส่วนตัว
โดย milk2533 จ 23 พ.ย. 2020 11:23 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
0
1
จ 23 พ.ย. 2020 11:23 am โดย milk2533
งานประจำวันที่ 23 พฤศจิกายน 2563
โดย milk2533 จ 23 พ.ย. 2020 11:21 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
2
28
จ 23 พ.ย. 2020 7:08 pm โดย milk2533
คำสั่งค้นหาไฟล์ จากขนาดของไฟล์
โดย mindphp จ 23 พ.ย. 2020 12:07 am บอร์ด Linux - Web Server
0
7
จ 23 พ.ย. 2020 12:07 am โดย mindphp
แก้ป้ญหา ภาษาไทย Error ใน Flask template ninja2 Error UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode
โดย mindphp ส 21 พ.ย. 2020 10:38 pm บอร์ด Python Knowledge
1
17
จ 23 พ.ย. 2020 12:22 pm โดย samay123