Python ก็กำหนด type ได้นะ

December 24th, 2020

ผมว่าหลาย ๆ คนอาจจะรู้อยู่แล้วว่า Python เป็นภาษาที่ dynamic type ก็คือไม่จำเป็นต้องกำหนด type ของตัวแปร และสามารถเปลี่ยนได้ภายหลัง ทำให้สามารถเขียนโค้ดได้ไวขึ้นเพราะไม่ต้องกังวลเรื่อง type อย่างไรก็ตาม เวลาเขียนไปเรื่อย ๆ ก็สามารถเกิดข้อผิดพลาดได้ เช่น เอา int ไปหาร str หรือ เอา class นึงไปใส่แทน class นึงจนเกิดบัคตามมา

อย่างไรก็ตาม Python ได้มีวิธีการกำหนด type ไว้ เพื่อให้ IDE กับ linter รู้ว่าเราทำพลาดตรงไหนได้บ้าง (ระบบ type ของ Python ไม่โยน exception เวลาใส่นะครับ แต่จะโยนเวลาเกิด error เช่น นำ int ไปหาร str ครับ)

วิธีแรกก็คือการใส่ type ไปในโค้ดเลยครับ เช่น

def add(a: int, b: int):
    return a + b

จะเห็นว่าตัวแปร a และ b ควรจะเป็น int ในกรณีนี้ครับ แม้เราจะเรียก function ด้วยตัวแปรชนิตอื่นก็ตาม

อีกวิธีก็คือการใส่ไว้ใน docstring ของ function ข้อดีของวิธีนัี้คือสามารอธิบายการทำงานไปได้พร้อมกันเลย

def subtract(a: int, b:int):
    """
    Return a subtracted with b
    Args:
      a (int): An integer
      b (int): An integer
    Returns:
      int: a - b
    """
    return a - b

จะเห็นว่าวิธีนี้สามารถใส่ได้ทั้งคำอธิบาย ชนิด รวมไปถึงค่าที่ return ออกมาอีกด้วย หวังว่าบทความนี้จะช่วยให้การเขียนโค้ด Python ของคุณดีมากขึ้นนะครับ