ฟังก์ชัน#
การแนะนำ#
ฟังก์ชันเป็นส่วนประกอบพื้นฐานของการเขียนโปรแกรม Python โดยทำหน้าที่รวบรวมโค้ดส่วนย่อยๆ เข้าไว้ด้วยกันเป็นส่วนๆ ที่นำกลับมาใช้ซ้ำได้และมีประสิทธิภาพ ออกแบบมาเพื่อทำงานเฉพาะอย่าง ฟังก์ชันสามารถเรียกใช้ได้หลายครั้งในโปรแกรมเดียวกัน ทำให้การจัดระเบียบโค้ดง่ายขึ้น และช่วยหลีกเลี่ยงการเขียนโค้ดซ้ำซ้อน นอกจากนี้ ฟังก์ชันยังทำให้การแก้ไขข้อผิดพลาดในโค้ดง่ายขึ้นด้วย
สำคัญ: การกำหนดฟังก์ชันเพียงอย่างเดียวไม่ได้ทำให้ฟังก์ชันทำงาน ใช้ cte_thread เพื่อเริ่มฟังก์ชันในเธรดใหม่เพื่อให้ฟังก์ชันเริ่มทำงานทันทีเมื่อเริ่มโปรเจ็กต์ แทนที่จะรอเหตุการณ์หรือการเรียกกลับ
defกำหนดฟังก์ชันreturnส่งผลลัพธ์ของฟังก์ชันกลับไปยังโปรแกรมหลัก
วิธีใช้:
def function_name(parameters):
# Code to execute when the function is called
return result # Optional, used to return a value
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ชื่อที่คุณตั้งให้กับฟังก์ชันของคุณ |
|
ตัวแปรเสริม ที่รับค่าอินพุตเมื่อเรียกใช้ฟังก์ชัน ซึ่งช่วยให้สามารถส่งข้อมูลเข้าไปในฟังก์ชันได้ |
|
ตัวเลือกเสริม อนุญาตให้ฟังก์ชันส่งผลลัพธ์กลับไปยังผู้เรียก หากฟังก์ชันไม่มีคำสั่ง return ฟังก์ชันจะส่งคืนค่า |
หมายเหตุ: ฟังก์ชันจะต้อง ถูกกำหนด ก่อน ที่จะถูกเรียกใช้เสมอ
การกำหนดและการเรียกใช้ฟังก์ชัน#
Functions with No Parameters#
หากฟังก์ชันไม่ต้องการข้อมูลป้อนเข้า คุณสามารถกำหนดฟังก์ชันนั้นได้โดยไม่ต้องมีพารามิเตอร์
def greeting():
brain.print("Hello!")
# Call the greeting function
greeting()
Functions with Parameters#
นอกจากนี้ คุณยังสามารถเพิ่มพารามิเตอร์ให้กับฟังก์ชันได้ ซึ่งจะช่วยให้คุณส่งข้อมูลที่ฟังก์ชันต้องการเพื่อทำงานได้
def move_square(moves):
for index in range(moves):
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
# Call the move_square function
move_square(4)
Functions with Default Arguments#
อาร์กิวเมนต์เริ่มต้น (Default argument) คือพารามิเตอร์ที่จะกำหนดค่าเริ่มต้นให้หากไม่มีการระบุค่าในฟังก์ชันที่เรียกใช้สำหรับอาร์กิวเมนต์นั้น
def move_square(moves=4):
for index in range(moves):
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
# Call the move_square function
move_square()
Return Values from Functions#
ฟังก์ชันสามารถส่งข้อมูลกลับไปยังผู้เรียกโดยใช้คีย์เวิร์ด return ซึ่งช่วยให้คุณสามารถดักจับและใช้งานผลลัพธ์ในโปรแกรมของคุณได้
def times_two(number):
return number * 2
# Display the return value
print(times_two(2))
เธรด cte#
cte_thread เริ่มฟังก์ชันในเธรดใหม่เพื่อให้เริ่มทำงานทันทีเมื่อเริ่มโปรเจ็กต์
หากมีการใช้ cte_thread มากกว่าหนึ่งรายการ ฟังก์ชันต่างๆ จะทำงานพร้อมกัน
Usage:
cte_thread(function)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ชื่อของฟังก์ชันที่กำหนดไว้ก่อนหน้านี้ |
def move_square():
# Move in a square path
while True:
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
def lights():
# Set the Signal Tower to start blinking the blue LED
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
# Start threads — Do not delete
cte_thread(move_square)
cte_thread(lights)