ฟังก์ชั่นใน Python คืออะไร?
ฟังก์ชันในไพธอนคือส่วนของโค้ดที่ทำงานเมื่อมีการอ้างอิง มันถูกใช้เพื่อใช้ประโยชน์จากรหัสมากกว่าหนึ่งแห่งในโปรแกรม เรียกอีกอย่างว่าวิธีการหรือขั้นตอน Python มีฟังก์ชัน inbuilt มากมาย เช่น print(), input(), compile(), exec() เป็นต้น แต่ยังให้อิสระในการสร้างฟังก์ชันของคุณเอง
วิธีกำหนดและเรียกใช้ฟังก์ชันใน Python
ฟังก์ชั่นใน Python ถูกกำหนดโดย คำสั่ง “def ”ตามด้วยชื่อฟังก์ชันและวงเล็บ ( () )
ตัวอย่าง:
ให้เรากำหนดฟังก์ชันโดยใช้คำสั่ง ” def func1():” และเรียกใช้ฟังก์ชัน ผลลัพธ์ของฟังก์ชันจะเป็น"ฉันกำลังเรียนรู้ฟังก์ชัน Python"
ฟังก์ชันprint func1()เรียก def func1(): และพิมพ์คำสั่ง ” ฉันกำลังเรียนรู้ฟังก์ชัน Python None“
มีชุดของกฎใน Python เพื่อกำหนดฟังก์ชัน
- อาร์กิวเมนต์หรือพารามิเตอร์อินพุตควรอยู่ในวงเล็บเหล่านี้
- คำสั่งแรกของฟังก์ชันอาจเป็นคำสั่งทางเลือกก็ได้- docstring หรือสตริงเอกสารประกอบของฟังก์ชัน
- รหัสภายในทุกฟังก์ชันเริ่มต้นด้วยเครื่องหมายทวิภาค (:) และควรเยื้อง (เว้นวรรค)
- คำสั่ง return (นิพจน์) ออกจากฟังก์ชัน โดยเลือกส่งกลับค่าไปยังผู้โทร คำสั่ง return ที่ไม่มี args เหมือนกับ return ไม่มี
ความสำคัญของการเยื้อง (ช่องว่าง) ใน Python
ก่อนที่เราจะทำความคุ้นเคยกับฟังก์ชัน Python สิ่งสำคัญคือเราต้องเข้าใจกฎการเยื้องเพื่อประกาศฟังก์ชัน Python และกฎเหล่านี้ใช้ได้กับองค์ประกอบอื่นๆ ของ Python เช่นเดียวกับการประกาศเงื่อนไข ลูป หรือตัวแปร
Python ใช้รูปแบบเฉพาะของการเยื้องเพื่อกำหนดโค้ด เนื่องจากฟังก์ชัน Python ไม่มีจุดเริ่มต้นหรือจุดสิ้นสุดที่ชัดเจน เช่น วงเล็บปีกกาเพื่อระบุการเริ่มต้นและหยุดของฟังก์ชัน ฟังก์ชันเหล่านี้จึงต้องอาศัยการเยื้องนี้ ต่อไปนี้คือตัวอย่างง่ายๆ ด้วยคำสั่ง "print" เมื่อเราเขียนฟังก์ชัน "print" ด้านล่าง def func 1 (): มันจะแสดง " ข้อผิดพลาดในการเยื้อง: คาดว่าจะมีการเยื้องบล็อก "
ตอนนี้ เมื่อคุณเพิ่มการเยื้อง (เว้นวรรค) หน้าฟังก์ชัน "print" ควรพิมพ์ตามที่คาดไว้
อย่างน้อย การเยื้องเพียงครั้งเดียวก็เพียงพอแล้วที่จะทำให้โค้ดของคุณทำงานสำเร็จ แต่ตามแนวทางปฏิบัติที่ดีที่สุด แนะนำให้เว้นวรรค 3-4 เพื่อเรียกใช้ฟังก์ชันของคุณคุณ
นอกจากนี้ยังจำเป็นที่ในขณะที่ประกาศการเยื้อง คุณต้องคงการเยื้องเดิมไว้สำหรับโค้ดที่เหลือของคุณ ตัวอย่างเช่น ในภาพหน้าจอด้านล่างเมื่อเราเรียกคำสั่งอื่นว่า "ยังคงอยู่ใน func1" และเมื่อไม่ได้ประกาศไว้ใต้คำสั่งพิมพ์ครั้งแรก จะแสดงข้อผิดพลาดการเยื้อง"unindent ไม่ตรงกับระดับการเยื้องอื่นๆ"
ตอนนี้เมื่อเราใช้การเยื้องเดียวกันสำหรับทั้งสองคำสั่งและจัดแนวในบรรทัดเดียวกัน จะให้ผลลัพธ์ที่คาดไว้
ฟังก์ชันคืนค่าอย่างไร
คำสั่ง return ใน Python ระบุค่าที่จะคืนให้กับผู้เรียกใช้ฟังก์ชัน มาทำความเข้าใจกับตัวอย่างต่อไปนี้กัน
ขั้นตอนที่ 1) ฟังก์ชั่นไม่ส่งคืนสิ่งใด
ที่นี่ - เราเห็นเมื่อฟังก์ชันไม่ "ส่งคืน" ตัวอย่างเช่น เราต้องการกำลังสองของ 4 และควรให้คำตอบ "16" เมื่อรันโค้ด ซึ่งให้เมื่อเราเพียงแค่ใช้รหัส "print x*x" แต่เมื่อคุณเรียกใช้ฟังก์ชัน "print square" จะให้ "None" เป็นผลลัพธ์ เนื่องจากเมื่อคุณเรียกใช้ฟังก์ชัน การเรียกซ้ำจะไม่เกิดขึ้นและหลุดออกจากจุดสิ้นสุดของฟังก์ชัน Python ส่งคืน "None" สำหรับความล้มเหลวเมื่อสิ้นสุดฟังก์ชัน
ขั้นตอนที่ 2) แทนที่คำสั่งพิมพ์ด้วยคำสั่งการมอบหมาย
เพื่อให้ชัดเจนยิ่งขึ้น เราแทนที่คำสั่งพิมพ์ด้วยคำสั่งการมอบหมาย มาตรวจสอบผลลัพธ์กัน
เมื่อคุณเรียกใช้คำสั่ง “print square (4)” มันจะคืนค่าของอ็อบเจกต์จริง ๆ เนื่องจากเราไม่มีฟังก์ชันเฉพาะใด ๆ ที่จะเรียกใช้ที่นี่ มันจะส่งคืน “ไม่มี”
ขั้นตอนที่ 3) ใช้ฟังก์ชัน 'return' และรันโค้ด
ตอนนี้เราจะมาดูวิธีการดึงผลลัพธ์โดยใช้คำสั่ง "return" เมื่อคุณใช้ฟังก์ชัน "return" และรันโค้ด มันจะให้ผลลัพธ์เป็น "16"
ขั้นตอนที่ 4) เรียกใช้คำสั่ง 'print square'
ฟังก์ชั่นใน Python นั้นเป็นวัตถุและวัตถุมีค่าบางอย่าง เราจะมาดูกันว่า Python จัดการกับวัตถุอย่างไร เมื่อคุณเรียกใช้คำสั่ง “print square” มันจะคืนค่าของวัตถุ เนื่องจากเราไม่ได้ส่งผ่านอาร์กิวเมนต์ใดๆ เราจึงไม่มีฟังก์ชันเฉพาะที่จะเรียกใช้ที่นี่ ซึ่งจะคืนค่าดีฟอลต์ (0x021B2D30) ซึ่งเป็นตำแหน่งของอ็อบเจ็กต์ ในโปรแกรม Python ที่ใช้งานได้จริง คุณไม่จำเป็นต้องทำสิ่งนี้เลย
อาร์กิวเมนต์ในฟังก์ชัน
อาร์กิวเมนต์คือค่าที่ส่งผ่านไปยังฟังก์ชันเมื่อมีการเรียก
กล่าวอีกนัยหนึ่งในด้านการโทร มันคืออาร์กิวเมนต์ และด้านฟังก์ชัน มันคือพารามิเตอร์
มาดูกันว่า Python Args ทำงานอย่างไร –
ขั้นตอนที่ 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)
เคล็ดลับ :
- ในไพทอน 2.7 ไม่รองรับ ฟังก์ชั่นโอเวอร์โหลดใน Python Function Overloading คือความสามารถในการสร้างเมธอดหลายเมธอดที่มีชื่อเดียวกันพร้อมการใช้งานที่แตกต่างกัน รองรับฟังก์ชั่นโอเวอร์โหลดใน Python 3 . อย่างสมบูรณ์
- มีความสับสนระหว่างวิธีการและการทำงานค่อนข้างมาก เมธอดใน Python เชื่อมโยงกับอินสแตนซ์ของอ็อบเจ็กต์ในขณะที่ฟังก์ชันไม่ได้ใช้งาน เมื่อ Python เรียกใช้เมธอด มันจะผูกพารามิเตอร์แรกของการเรียกนั้นกับการอ้างอิงอ็อบเจ็กต์ที่เหมาะสม กล่าวง่ายๆ ฟังก์ชันสแตนด์อโลนใน Python คือ "ฟังก์ชัน" ในขณะที่ฟังก์ชันที่เป็นแอตทริบิวต์ของคลาสหรืออินสแตนซ์คือ "เมธอด"
นี่คือรหัส Python 3 ที่สมบูรณ์
#กำหนดฟังก์ชั่น def func1(): พิมพ์ ("ฉันกำลังเรียนรู้ฟังก์ชัน Python") พิมพ์ ("ยังอยู่ใน func1") func1() def สแควร์ (x): กลับ x*x พิมพ์(สี่เหลี่ยม(4)) def คูณ (x,y=0): พิมพ์ ("ค่าของ x=",x) พิมพ์ ("ค่าของ y=",y) ส่งคืน x*y พิมพ์(คูณ(y=2,x=4))
นี่คือรหัส Python 2 ที่สมบูรณ์
#กำหนดฟังก์ชั่น def func1(): พิมพ์ "ฉันกำลังเรียนรู้ฟังก์ชัน Python" พิมพ์ "ยังอยู่ใน func1" func1() def สแควร์ (x): กลับ x*x พิมพ์สี่เหลี่ยม(4) def คูณ (x,y=0): พิมพ์"ค่าของ x=",x พิมพ์"ค่าของ y=",y ส่งคืน x*y พิมพ์คูณ(y=2,x=4)
สรุป:
ฟังก์ชันใน Python เป็นโค้ดที่ใช้ซ้ำได้ซึ่งใช้ในการดำเนินการเดี่ยวที่เกี่ยวข้อง ในบทความนี้เราจะเห็น
- ฟังก์ชันที่กำหนดโดยคำสั่งdef
- บล็อกโค้ดภายในทุกฟังก์ชันเริ่มต้นด้วยโคลอน (:) และควรเยื้อง (เว้นวรรค)
- อาร์กิวเมนต์หรือพารามิเตอร์อินพุตควรอยู่ในวงเล็บเหล่านี้ ฯลฯ
- ควรเว้นการเยื้องอย่างน้อยหนึ่งรายการก่อนโค้ดหลังจากประกาศฟังก์ชัน
- รูปแบบการเยื้องเดียวกันควรคงไว้ตลอดทั้งโค้ดภายในฟังก์ชัน def
- สำหรับแนวทางปฏิบัติที่ดีที่สุด สามหรือสี่เยื้องถือว่าดีที่สุดก่อนคำสั่ง
- คุณสามารถใช้คำสั่ง "return" เพื่อคืนค่าการเรียกใช้ฟังก์ชัน
- Python จะพิมพ์ค่าสุ่มเช่น (0x021B2D30) เมื่ออาร์กิวเมนต์ไม่ถูกส่งไปยังฟังก์ชันการเรียก ตัวอย่าง “ฟังก์ชั่นการพิมพ์”
- ด้านการโทร มันคืออาร์กิวเมนต์ และด้านฟังก์ชัน มันคือพารามิเตอร์
- ค่าเริ่มต้นในอาร์กิวเมนต์ – เมื่อเราระบุอาร์กิวเมนต์เพียงตัวเดียวขณะเรียกใช้ฟังก์ชันการคูณหรือฟังก์ชันอื่นๆ Python จะกำหนดอาร์กิวเมนต์อื่นตามค่าเริ่มต้น
- Python ช่วยให้คุณสามารถย้อนกลับลำดับของอาร์กิวเมนต์ได้เช่นกัน
0 ความคิดเห็น:
แสดงความคิดเห็น