November 7, 2011

Python: สร้างฟังก์ชันเก็บไว้ใช้

ใน Python การสร้างฟังก์ชันสามารถทำได้โดยคำสั่ง def เช่นนี้ครับ

ด้วยความที่เป็น dynamic type ทำให้เราไม่ต้องบอกประเภทของตัวแปรที่รับ/คืนจากฟังก์ชัน แต่ก็ทำให้เสียความสามารถของ method overloading ไป (ซึ่งถ้าอยากได้จริงๆ อาจลงมือเช็คเองโดยใช้คำสั่ง type() ก็ได้)

และเช่นกันกับตอนแรกๆ ที่เราวน for แทบทุกอย่างที่ตามหลังเครื่องหมาย : ต้องขึ้นย่อหน้าใหม่พร้อม indent เพิ่ม และต้องมีคำสั่งด้วย ... ถ้ายังคิดไม่ออก อย่าลืม pass ไปก่อนนะครับ

อนึ่ง การแทรก string ไว้ทันทีหลัง def ฟังก์ชัน Python จะเก็บมันไว้เป็น docs ด้วยครับ

ซึ่งเราสามารถอ่าน docs ประจำ function ได้ในโหมด interactive shell โดยใช้คำสั่ง help()

และถ้าเราต้องการรู้ว่าเราได้สร้างฟังก์ชันอะไรขึ้นมาใช้แล้วบ้าง ก็สามารถเรียกดูได้โดยคำสั่ง dir()



การสร้างฟังก์ชันเพื่อ import มาใช้งาน ต้องเขียนไฟล์เก็บไว้เป็น filename.py ครับ

โดยเมื่อตอนใช้งาน เราสามารถเรียกได้จาก import เช่น สมมติเราเซฟงานด้านบนไว้ในชื่อ test.py

หรือถ้าเรารู้สึกว่าชื่อเหล่านี้ยาวไป

หรือจะทำอย่างนี้ก็ได้ (แต่ไม่แนะนำ เพราะอาจเกิดการ lost ของ docs ประจำไฟล์)

ทั้งนี้ มีข้อควรจำไว้อย่างหนึ่งว่า เมื่อเรา import สำเร็จ การแก้ไข code ที่ไฟล์ต้นฉบับจะไม่ส่งผลต่อ code ที่ได้ import เข้ามาแล้วนะครับ ถ้าอยากได้ใหม่ต้อง restart Python shell เอง



ถึงแม้ Python จะไม่รองรับ method overloading แต่ก็ได้จุดแข็งที่สามารถ init ตัวแปรได้นะครับ

และเรายังมี *args และ **kwargs ให้ใช้ด้วย

4 comments:

  1. "print(add(5,5)) # 10" อันนี้ได้ 6 นะครับ

    ReplyDelete
  2. ขอบคุณครับ T T

    ReplyDelete
  3. print(add(5,5)) เป็น 10 ถูกแล้วหนิครับ = =

    ReplyDelete
    Replies
    1. ที่คอมเมนท์ไว้เป็นของเก่า ตอนนี้แก้ไขเรียบร้อยแล้วครับ :)

      Delete