Python ฟังก์ชัน
- หน้าก่อนหน้า Python วน For
- หน้าต่อไป Python Lambda
ฟังก์ชันเป็นบล็อคโค้ดที่เรียกใช้ได้เมื่อเรียกใช้เท่านั้น
นั่นเราสามารถส่งผ่านข้อมูล (ที่เรียกว่าตัวแปร) สู่ฟังก์ชัน
ฟังก์ชันสามารถคืนค่าที่มีอยู่ของข้อมูล
ที่เรียกว่าฟังก์ชัน
ใน Python นั้น ใช้ def
กำหนดฟังก์ชันด้วยคำกำหนดเดิม:
ตัวอย่าง
def my_function(): print("Hello from a function")
เรียกใช้ฟังก์ชัน
ถ้าต้องการเรียกใช้ฟังก์ชัน ใช้ชื่อฟังก์ชันตามด้วยวงเล็บ ()
ตัวอย่าง
def my_function(): print("Hello from a function") my_function()
ตัวแปร
ข้อมูลสามารถถูกส่งผ่านให้กับฟังก์ชันด้วยตัวแปร
ตัวแปรนี้จะถูกกำหนดในในวงเล็บหลังชื่อฟังก์ชัน นั่นเราสามารถเพิ่มได้ตัวแปรที่จำเป็นโดยเรียกชื่อตัวแปรที่จะส่งผ่านโดยการเซเปอร์เซ็ท (,) ตามต้องการ
ตัวอย่างด้านล่างมีฟังก์ชันที่มีตัวแปร (fname) ในฟังก์ชัน。เมื่อเรียกใช้ฟังก์ชันนี้ นั่นเราส่งผ่านชื่อที่ใส่ลง และใช้ชื่อนี้ภายในฟังก์ชันเพื่อพิมพ์ชื่อเต็ม:
ตัวอย่าง
def my_function(fname): print(fname + " Gates") my_function("Bill") my_function("Steve") my_function("Elon")
ค่าเริ่มต้นที่เปิดดังกล่าว
ตัวอย่างด้านล่างแสดงว่าวิธีใช้ค่าเริ่มต้นที่เปิดดังกล่าว。
ถ้าเราเรียกใช้ฟังก์ชันที่ไม่มีตัวแปรค่าเริ่มต้น จะใช้ค่าเริ่มต้นตามนิยาย:
ตัวอย่าง
def my_function(country = "China"): print("ฉันมาจาก " + country) my_function("Sweden") my_function("India") my_function() my_function("Brazil")
ส่งพารามิเตอร์ด้วย List
พารามิเตอร์ที่ส่งไปยังฟังก์ชันสามารถเป็นรูปแบบข้อมูลทุกชนิด (ตัวอักษร ตัวเลข ลิสต์ แม่ความ และอื่นๆ) และจะถูกใช้เหมือนกันภายในฟังก์ชัน
ตัวอย่าง ถ้าคุณส่ง List ที่มาเป็นพารามิเตอร์ มันจะยังคงเป็น List ตัวเดียวกันเมื่อมันเข้าไปในฟังก์ชัน
ตัวอย่าง
def my_function(food): for x in food: print(x) fruits = ["apple", "banana", "cherry"] my_function(fruits)
ค่าที่กลับมา
เพื่อให้ฟังก์ชันกลับมามีค่า ให้ใช้ return
คำสั่ง:
ตัวอย่าง
def my_function(x): return 5 * x print(my_function(3)) print(my_function(5)) print(my_function(9))
พารามิเตอร์ที่มีชื่อ
คุณยังสามารถใช้คำสั่ง key = value ส่งพารามิเตอร์
ลำดับของพารามิเตอร์ไม่มีประโยชน์
ตัวอย่าง
def my_function(child3, child2, child1): print("เด็กที่อายุน้อยที่สุดคือ " + child3) my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")
ในเอกสาร Python คำว่า "พารามิเตอร์ที่ไม่มีชื่อ" มักถูกย่อว่า kwargs
พารามิเตอร์ส่วนที่เหลือ
ถ้าคุณไม่ทราบจำนวนพารามิเตอร์ที่จะส่งไป โปรดเพิ่ม * ก่อนชื่อพารามิเตอร์ในการประกาศฟังก์ชัน
ดังนั้น ฟังก์ชันจะรับพารามิเตอร์เป็นตัวเลขเรียงที่สามารถเข้าถึงแต่ละชิ้นได้
ตัวอย่าง
ถ้าคุณไม่ทราบจำนวนพารามิเตอร์ที่จะส่งไป โปรดเพิ่ม * ก่อนชื่อพารามิเตอร์
def my_function(*kids): print("เด็กที่อายุน้อยที่สุดคือ " + kids[2]) my_function("Phoebe", "Jennifer", "Rory")
pass สตริง
ฟังก์ชันการประกาศไม่สามารถเป็นความเปล่าเปล่าออกไป แต่ถ้าคุณเขียนฟังก์ชันที่ไม่มีเนื้อหาเพราะเหตุผลบางอย่าง ให้ใช้คำสั่ง pass เพื่อป้องกันข้อผิดพลาด
ตัวอย่าง
def myfunction: pass
การทำงานทางฝั่งหลัง
Python ยังรับฟังก์ชันที่เรียกตัวเองด้วย
การทำงานทางฝั่งหลังเป็นความคิดของ matematical และ programming ที่เป็นระบบที่ตั้งตาราง มันหมายความว่าฟังก์ชันเรียกตัวเอง
นักพัฒนาควรระมัดระวังการทำงานทางฝั่งหลัง เพราะมันสามารถเขียนฟังก์ชันที่ไม่จบ หรือใช้หน่วยความจำหรือพลังงานของจอมากเกินไป แต่หลังจากที่เขียนแล้ว การทำงานทางฝั่งหลังอาจเป็นวิธีที่มีประสิทธิภาพและงดงามทาง matematical ในการเขียนโปรแกรม
ในตัวอย่างนี้tri_recursion()
เราเรียกว่าฟังก์ชันที่เรียกตัวเอง ("recurse") พวกเราใช้ตัวแปร k ในการใช้งาน และลดลง (-1) ในแต่ละครั้งที่เรียกฟังก์ชัน การทำงานจะจบเมื่อเงื่อนไขไม่เกิน 0 (เช่นเมื่อมันเท่า 0) ระหว่างที่มันเท่า 0
สำหรับนักพัฒนาที่ใหม่ อาจจะต้องใช้เวลาเพื่อเข้าใจว่างานของมัน และทางที่ดีที่สุดคือการทดสอบและแก้ไขมัน
ตัวอย่าง
ตัวอย่างของการทำงานทางฝั่งหลัง
def tri_recursion(k): if(k>0): result = k+tri_recursion(k-1) print(result) else: result = 0 return result print("\n\nRecursion Example Results") tri_recursion(6)
- หน้าก่อนหน้า Python วน For
- หน้าต่อไป Python Lambda