Method (เมธอด) คือ สมาชิกของคลาสอีกอย่างหนึ่งที่ใช้สำหรับกำหนดการกระทำต่างๆ โดยการสร้างเมธอดจะใช้หลักการเดียวกันกับฟังก์ชันทุกประการ จึงอาจกล่าวได้ว่า เมธอดก็คือฟังก์ชันของ Class (คลาส) นั่นเอง ซึ่งในบทความนี้เราจะมาพูดถึง การเรียกใช้งานเมธอดผ่านอินสแตนซ์ Instance Method ในภาษาไพทอนกัน
Instance Method
Instance Method (อินสแตนซ์เมธอด) คือ เมธอดที่ต้องเรียกใช้งานผ่านอินสแตนซ์ของคลาสนั้น ซึ่งข้อกำหนดส่วนใหญ่ก็จะเหมือนกับฟังก์ชันเกือบทั้งหมด แต่สิ่งที่แตกต่างออกไปก็คือ พารามิเตอร์ตัวแรกของเมธอดควรเป็นคำว่า self สำหรับใช้อ้างอิงถึงสมาชิก เช่น แอตทริบิวต์หรือเมธอดอื่นๆภายในคลาสนั้น และถึงแม้ในเมธอดนั้นจะไม่อ้างถึงสมาชิกตัวอื่นก็จำเป็นจะต้องมี self กำกับเอาไว้ ซึ่งเราสามารถดูเพิ่มจากลักษณะการนำไปใช้ได้จากนี้เลย
class calculator:
def is_number(self, x): #จะต้องมี self เป็นพารามิเตอร์ตัวแรก
try:
float(x)
except:
return False
else:
return True
def compute(self, a, b, operator):
try:
return eval(f'{a}{operator}{b}')
except:
return None
def show_result(self, a, b, operator):
print(f'{a}{operator}{b} = {self.compute(a, b, operator)}')
จากโค้ดในตัวอย่างเราจะเห็นได้ว่า เมื่อเราอ้างถึงเมธอดอื่นๆ ที่อยู่ภายในคลาสจะต้องทำผ่านคำว่า self แต่ถ้าหากอ้างถึงพารามิเตอร์ที่เป็นของมันเอง ก็ระบุเพียงแค่ชื่อเช่นเดียวกับฟังก์ชัน และหากว่าเราต้องการเรียกเมธอดจากภายนอกคลาส ก็ต้องสร้างอินสแตนซ์ของคลาสเหล่านั้นขึ้นมาก่อน จากนั้นก็สามารถเรียกผ่านอินสแตนซ์ โดยไม่ต้องมี self เป็นอาร์กิวเมนต์ แต่ตัวอื่นๆ ต้องใส่ไปตามปกติ ตัวอย่างเช่น
cal = calculator() #สร้างอินสแตนซ์ของคลาส calculator
cal.show_result(10, 20, '*') #เรียกเมธอด
x = cal.compute(1, 9, '+')
y = cal.compute(9, 1, '-')
if cal.is_number(x) and cal.is_number(y):
cal.show_result(x, y , '*')
จะเห็นได้ว่าเมธอดของคลาส จะต้องเรียกผ่านอินสแตนซ์ของคลาสนั้น เราจึงเรียกว่าเป็น Instance Method
ผลลัพธ์
จากผลลัพธ์ที่ออกมา เป็นการคำนวณตัวเลขแบบง่ายๆ แต่จะเป็นการเรียกใช้เมธอดผ่านอินสแตนซ์ของคลาสนั้นๆ เพียงเท่านี้ก็สามารถรู้วิธีในการเรียกใช้งานเมธอดผ่านอินสแตนซ์ได้แล้ว ทำให้เราสามารถกำหนดการกระทำต่างๆ ได้อย่างง่ายดาย
ช่องทางการศึกษาเพิ่มเติมเกี่ยวกับ : Python
9 ชนิดของข้อผิดพลาดในภาษาไพทอน
ฟังก์ชันและปฏิบัติการต่างๆ เกี่ยวกับเซต ในไพทอน
ฟังก์ชันต่างๆ ของข้อมูลแบบ Dictionary ในไพทอน
ไพทอน การสร้างคลาส การเขียนโปรแกรมแบบออปเจ็ค Create Class OOP