ตัวแปร

เนื่องจากไพธอนเป็นภาษาสคริปต์จึงไม่เน้นชนิดของตัวแปร การไม่เน้นไม่ได้หมายความว่าตัวแปรในไพธอนไม่มีชนิด ในความจริงแล้วตัวแปรถ้าพูดแบบละเอียดชนิดของตัวแปรในไพธอนมีเพียงชนิดเดียว นั่นก็คือ พอยเตอร์ (Pointer) นั่นเอง สำหรับผู้ที่เคยมีประสบการณ์เขียนโปรแกรมด้วยภาษาระดับกลางถึงต่ำเช่น ปาสคาล หรือซี เป็นต้น คำว่าพอยเตอร์อาจทำให้ขยาด แต่ในไพธอนแล้วพอยเตอร์เป็นเรื่องธรรมชาติที่เข้าใจได้ง่ายกว่ามาก เพราะไม่มีสัญลักษณ์และรูปแบบที่หลากหลายรวมถึงตัวแปรทุกตัวถือว่าเป็นพอยเตอร์อยู่แล้วจึงไม่สับสนกับชนิดของตัวแปร

แต่เอ๊ะ แล้วทำไมตัวแปรถึงไม่มีชนิดตามข้อมูลล่ะ ง่ายนิดเดียวครับ เพราะตัวแปรเป็นพอยเตอร์ที่เอาไว้ชี้ข้อมูลจริงๆ นั่นเอง เมื่อถึงเวลาใช้แล้วนั้น ตัวแปรจะมีชนิดเปลี่ยนไปตามข้อมูลที่กำลังชี้อยู่ ด้วยเหตุนี้เองทำให้ตัวแปรของไพธอนไม่มีชนิดที่แน่นอนตายตัว ทำให้กลายเป็นทั้งข้อดีและข้อเสียในเวลาเดียวกัน ข้อดีได้แก่

  1. สะดวก ประหยัด
  2. เปลี่ยนชนิดของตัวแปรระหว่างการทำงานได้

ในขณะที่ข้อเสีย ได้แก่

  1. ไม่สามารถตรวจสอบความถูกต้องได้จนกว่าจะใช้งานจริง
  2. ไม่สามารถรู้ชนิดของตัวแปรจนกว่าจะใช้งานจริง

อย่างไรก็ตาม แม้ว่าตัวแปรของไพธอนจะไม่ต้องกำหนดชนิดที่แน่นอน แต่ตัวแปรจะต้องถูกกำหนดค่าก่อนนำไปใช้เสมอ การกำหนดค่าครั้งแรกถือว่าเป็นการประกาศตัวแปรนั้นขึ้นมาใช้งานทันที เช่น

print a
a = 1

ตัวอย่างด้านบนไม่สามารถทำงานได้เพราะ a ยังไม่ถูกประกาศก่อนการใช้งานในบรรทัดแรก ทำให้โปรแกรมเกิดข้อผิดพลาดและหยุดทำงานทันที ตัวอย่างถัดไปเป็นตัวอย่างที่ถูกต้อง

a = 1
print a
a = 1.0
print a
a = "abc"
print a

Post new comment