วิธีการเรียกใช้ฟังก์ชันใน Python (ตัวอย่าง)
ฟังก์ชั่นอยู่ในอะไร Python?
A ฟังก์ชั่นใน Python คือส่วนของโค้ดที่ทำงานเมื่อมีการอ้างอิง ใช้เพื่อใช้โค้ดมากกว่าหนึ่งที่ในโปรแกรม เรียกอีกอย่างว่าวิธีการหรือขั้นตอน Python มีฟังก์ชัน inbuilt มากมาย เช่น print(), input(), Compile(), exec() ฯลฯ แต่ยังให้อิสระในการสร้างฟังก์ชันของคุณเองด้วย
วิธีกำหนดและเรียกใช้ฟังก์ชัน Python
ฟังก์ชั่นใน Python ถูกกำหนดโดย “แน่นอน” คำสั่งตามด้วยชื่อฟังก์ชันและวงเล็บ ( () )
ตัวอย่าง:
ให้เรากำหนดฟังก์ชันโดยใช้คำสั่ง ” def func1():” แล้วเรียกใช้ฟังก์ชัน ผลลัพธ์ของฟังก์ชันจะเป็น “ฉันกำลังเรียนรู้ Python ฟังก์ชัน”.
ฟังก์ชั่น พิมพ์ func1() เรียก def func1(): และพิมพ์คำสั่ง ” ฉันกำลังเรียนรู้ Python ฟังก์ชั่นไม่มี"
มีกฎเกณฑ์อยู่ในนั้น Python เพื่อกำหนดฟังก์ชัน
- อาร์กิวเมนต์หรือพารามิเตอร์อินพุตใดๆ ควรอยู่ในวงเล็บเหล่านี้
- คำสั่งแรกของฟังก์ชันอาจเป็นคำสั่งเสริมได้ - docstring หรือสตริงเอกสารประกอบของฟังก์ชัน
- รหัสภายในทุกฟังก์ชันเริ่มต้นด้วยเครื่องหมายทวิภาค (:) และควรเว้นวรรค (เว้นวรรค)
- คำสั่ง return (expression) ออกจากฟังก์ชัน หรืออาจส่งค่ากลับให้กับผู้เรียกก็ได้ คำสั่ง return ที่ไม่มี args จะเหมือนกับ return none
ความสำคัญของการเยื้อง (ช่องว่าง) ใน Python
ก่อนที่เราจะมาทำความรู้จักกับ Python สิ่งสำคัญคือเราต้องเข้าใจกฎการเยื้องที่จะประกาศ Python ฟังก์ชั่นและกฎเหล่านี้ใช้กับองค์ประกอบอื่น ๆ ของ Python เช่นเดียวกับการประกาศเงื่อนไข ลูป หรือตัวแปร
Python เป็นไปตามรูปแบบการเยื้องเฉพาะเพื่อกำหนดโค้ดเนื่องจาก Python ฟังก์ชั่นไม่มีจุดเริ่มต้นหรือจุดสิ้นสุดที่ชัดเจนเหมือนวงเล็บปีกกาเพื่อระบุจุดเริ่มต้นและหยุดของฟังก์ชัน พวกเขาจะต้องอาศัยการเยื้องนี้- เราจะยกตัวอย่างง่ายๆ ด้วยคำสั่ง "print" เมื่อเราเขียนฟังก์ชัน “print” ไว้ด้านล่าง def func 1 (): มันจะแสดงข้อความ “ข้อผิดพลาดในการเยื้อง: คาดว่าจะมีการเยื้องบล็อก"
ตอนนี้ เมื่อคุณเพิ่มการเยื้อง (ช่องว่าง) หน้าฟังก์ชัน "พิมพ์" ก็ควรพิมพ์ตามที่คาดไว้
อย่างน้อยหนึ่งการเยื้องก็เพียงพอแล้วที่จะทำให้โค้ดของคุณทำงานได้สำเร็จ แต่ตามแนวทางปฏิบัติที่ดีที่สุด ขอแนะนำให้เว้นการเยื้องไว้ประมาณ 3-4 ครั้งเพื่อเรียกใช้ฟังก์ชันของคุณ.
จำเป็นด้วยที่ในขณะที่ประกาศการเยื้อง คุณต้องทำ คงการเยื้องเดิมไว้สำหรับโค้ดที่เหลือ- ตัวอย่างเช่น ในภาพหน้าจอด้านล่าง เมื่อเราเรียกคำสั่งอื่นว่า “ยังอยู่ใน func1” และเมื่อไม่ได้ประกาศไว้ด้านล่างคำสั่งการพิมพ์แรก ก็จะแสดงข้อผิดพลาดการเยื้อง “การเยื้องไม่ตรงกับระดับการเยื้องอื่นๆ”
ตอนนี้ เมื่อเราใช้การเยื้องแบบเดียวกันสำหรับทั้งสองข้อความและจัดวางให้อยู่ในบรรทัดเดียวกัน มันจะให้ผลลัพธ์ที่คาดหวัง
ฟังก์ชั่นคืนค่าอย่างไร?
กลับคำสั่งใน Python ระบุค่าที่จะส่งกลับไปยังผู้เรียกฟังก์ชัน มาทำความเข้าใจด้วยตัวอย่างต่อไปนี้
ขั้นตอนที่ 1) ฟังก์ชั่นไม่ส่งคืนสิ่งใด ๆ
ที่นี่ – เราจะเห็นเมื่อฟังก์ชันไม่ “กลับมา” ตัวอย่างเช่น เราต้องการกำลังสองของ 4 และควรให้คำตอบ "16" เมื่อโค้ดถูกดำเนินการ ซึ่งจะให้เมื่อเราใช้โค้ด "print x*x" แต่เมื่อคุณเรียกใช้ฟังก์ชัน "print square" มันจะให้ "None" เป็นเอาต์พุต เนื่องจากเมื่อคุณเรียกใช้ฟังก์ชัน การเรียกซ้ำจะไม่เกิดขึ้นและหลุดออกจากจุดสิ้นสุดของฟังก์ชัน Python ส่งคืน "ไม่มี" หากล้มเหลวเมื่อสิ้นสุดฟังก์ชัน
ขั้นตอนที่ 2) แทนที่คำสั่งพิมพ์ด้วยคำสั่งมอบหมาย
เพื่อให้ชัดเจนยิ่งขึ้น เราจึงแทนที่คำสั่ง print ด้วยคำสั่งการมอบหมาย เรามาตรวจสอบผลลัพธ์กันดีกว่า
เมื่อคุณรันคำสั่ง “print square (4)” มันจะคืนค่าของอ็อบเจ็กต์จริง ๆ เนื่องจากเราไม่มีฟังก์ชันเฉพาะใด ๆ ให้รันที่นี่ มันจะส่งคืน “None”
ขั้นตอนที่ 3) ใช้ฟังก์ชัน 'return' และรันโค้ด
ตอนนี้เราจะมาดูวิธีการดึงข้อมูลเอาต์พุตโดยใช้คำสั่ง "return" เมื่อคุณใช้ฟังก์ชัน "return" และรันโค้ด มันจะให้เอาต์พุตเป็น "16"
ขั้นตอนที่ 4) เรียกใช้คำสั่ง 'print square'
ฟังก์ชั่นใน Python ต่างก็เป็นวัตถุ และวัตถุก็มีคุณค่าอยู่บ้าง เราจะมาดูวิธีการที่นี่ Python ปฏิบัติต่อวัตถุ เมื่อคุณรันคำสั่ง “print square” คำสั่งจะส่งกลับค่าของอ็อบเจ็กต์ เนื่องจากเราไม่ได้ผ่านอาร์กิวเมนต์ใดๆ เราจึงไม่มีฟังก์ชันเฉพาะใดๆ ให้รันที่นี่ โดยจะส่งคืนค่าดีฟอลต์ (0x021B2D30) ซึ่งเป็นตำแหน่งของอ็อบเจ็กต์ ในทางปฏิบัติ Python โปรแกรมคุณอาจไม่จำเป็นต้องทำเช่นนี้เลย
อาร์กิวเมนต์ในฟังก์ชัน
อาร์กิวเมนต์คือค่าที่ถูกส่งผ่านไปยังฟังก์ชันเมื่อมีการเรียกใช้
กล่าวอีกนัยหนึ่งทางฝั่งการเรียก มันเป็นอาร์กิวเมนต์ และฝั่งฟังก์ชันคือพารามิเตอร์
มาดูกันว่าอย่างไร Python อาร์กส์ทำงาน –
ขั้นตอน 1) อาร์กิวเมนต์ถูกประกาศในคำจำกัดความของฟังก์ชัน ในขณะที่เรียกใช้ฟังก์ชัน คุณสามารถส่งค่าสำหรับ args นั้นได้ดังที่แสดงด้านล่าง
ขั้นตอน 2) หากต้องการประกาศค่าเริ่มต้นของอาร์กิวเมนต์ ให้กำหนดค่าตามคำจำกัดความของฟังก์ชัน
ตัวอย่าง: x ไม่มีค่าเริ่มต้น ค่าเริ่มต้นของ y=0 เมื่อเราระบุอาร์กิวเมนต์เดียวในขณะที่เรียกใช้ฟังก์ชันคูณ Python กำหนดค่าที่ให้มาให้กับ x โดยที่ยังคงค่า y=0 ไว้ ดังนั้นการคูณของ x*y=0
ขั้นตอน 3) ครั้งนี้เราจะเปลี่ยนค่าเป็น y=2 แทนที่จะเป็นค่าเริ่มต้น y=0 และจะส่งคืนเอาต์พุตเป็น (4×2)=8
ขั้นตอน 4) คุณยังสามารถเปลี่ยนลำดับในการส่งอาร์กิวเมนต์ได้ Pythonที่นี่เราได้ย้อนลำดับค่า x และ y เป็น x=4 และ y=2
ขั้นตอน 5) อาร์กิวเมนต์หลายตัวสามารถส่งผ่านเป็นอาร์เรย์ได้ ในตัวอย่างนี้ เราเรียกหลาย args (1,2,3,4,5) โดยการเรียกใช้ฟังก์ชัน (*args)
ตัวอย่าง: เราประกาศหลาย args เป็นตัวเลข (1,2,3,4,5) เมื่อเราเรียกใช้ฟังก์ชัน (*args) มันพิมพ์ออกมาเป็น (1,2,3,4,5)
เคล็ดลับ:
- In Python 2.7. ฟังก์ชั่นโอเวอร์โหลด ไม่รองรับใน Python- Function Overloading คือความสามารถในการสร้างวิธีการหลายวิธีที่มีชื่อเดียวกันโดยมีการใช้งานที่แตกต่างกัน รองรับฟังก์ชั่น Overloading อย่างสมบูรณ์ Python 3
- มีความสับสนระหว่างวิธีการและฟังก์ชันค่อนข้างมาก วิธีการใน Python มีความเกี่ยวข้องกับอินสแตนซ์ของวัตถุในขณะที่ฟังก์ชันไม่เกี่ยวข้อง เมื่อไร Python เรียกเมธอด ซึ่งจะผูกพารามิเตอร์แรกของการเรียกนั้นกับการอ้างอิงอ็อบเจ็กต์ที่เหมาะสม กล่าวง่ายๆ ก็คือ ฟังก์ชันแบบสแตนด์อโลนใน Python คือ "ฟังก์ชัน" ในขณะที่ฟังก์ชันที่เป็นคุณลักษณะของคลาสหรืออินสแตนซ์คือ "วิธีการ"
นี่คือสิ่งที่สมบูรณ์ Python 3 รหัส
#define a function def func1(): print ("I am learning Python function") print ("still in func1") func1() def square(x): return x*x print(square(4)) def multiply(x,y=0): print("value of x=",x) print("value of y=",y) return x*y print(multiply(y=2,x=4))
นี่คือสิ่งที่สมบูรณ์ Python 2 รหัส
#define a function def func1(): print " I am learning Python function" print " still in func1" func1() def square(x): return x*x print square(4) def multiply(x,y=0): print"value of x=",x print"value of y=",y return x*y print multiply(y=2,x=4)
สรุป
ฟังก์ชั่นใน Python เป็นโค้ดที่นำมาใช้ซ้ำได้ซึ่งใช้ในการดำเนินการเดี่ยวที่เกี่ยวข้องกัน ในบทความนี้เราจะมาดูกัน
- ฟังก์ชั่นที่กำหนดโดย def คำสั่ง
- บล็อกโค้ดภายในทุกฟังก์ชันจะเริ่มต้นด้วยเครื่องหมายทวิภาค (:) และควรเว้นวรรค (เว้นวรรค)
- อาร์กิวเมนต์หรือพารามิเตอร์อินพุตใดๆ ควรอยู่ในวงเล็บเหล่านี้ ฯลฯ
- ควรเว้นการเยื้องอย่างน้อยหนึ่งรายการไว้หน้าโค้ดหลังจากประกาศฟังก์ชัน
- ควรรักษารูปแบบการเยื้องเดียวกันตลอดทั้งโค้ดภายในฟังก์ชัน def
- สำหรับแนวทางปฏิบัติที่ดีที่สุด การเยื้องสามหรือสี่ครั้งจะถือว่าดีที่สุดก่อนคำสั่ง
- คุณสามารถใช้คำสั่ง "return" เพื่อคืนค่ากลับไปสู่การเรียกใช้ฟังก์ชัน
- Python จะพิมพ์ค่าสุ่มเช่น (0x021B2D30) เมื่อไม่ได้ระบุอาร์กิวเมนต์ให้กับฟังก์ชันการโทร ตัวอย่าง “ฟังก์ชันการพิมพ์”
- ในด้านการโทร มันคืออาร์กิวเมนต์ และในด้านฟังก์ชัน มันคือพารามิเตอร์
- ค่าเริ่มต้นในอาร์กิวเมนต์ - เมื่อเราระบุอาร์กิวเมนต์เดียวในขณะที่เรียกใช้ฟังก์ชันคูณหรือฟังก์ชันอื่นใด Python กำหนดอาร์กิวเมนต์อื่นตามค่าเริ่มต้น
- Python ทำให้คุณสามารถย้อนลำดับการโต้แย้งได้เช่นกัน