ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

     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

Chayapol
, Instance Method การเรียกใช้งานเมธอดผ่านอินสแตนซ์ - by เทคนิคการเขียน Python,
3 2 1 5
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - สอบถามทำให้ mouse over ที่ไอคอนรูปวงกลม แล้วให้แสดงรูปที่เป็นข้อความขึ้น
โดย eange08 ศ 05 มี.ค. 2021 4:52 pm บอร์ด Joomla Dev
1
4
ศ 05 มี.ค. 2021 5:47 pm โดย tsukasaz
กลุ่มประเทศผู้ส่งออกข้าว
โดย jataz2 ศ 05 มี.ค. 2021 11:07 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
9
ศ 05 มี.ค. 2021 11:07 am โดย jataz2
Q - พอมี module หรือ plugin ที่เป็นพวก social อย่าง line, ig บ้างไหมค่ะ
โดย eange08 พฤ 04 มี.ค. 2021 5:21 pm บอร์ด Joomla Dev
1
7
พฤ 04 มี.ค. 2021 5:26 pm โดย tsukasaz
reboot เครื่องไม่ได้ครับ
โดย chakirin.bfds พฤ 04 มี.ค. 2021 12:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
30
พฤ 04 มี.ค. 2021 3:14 pm โดย chakirin.bfds
แก้ css ส่วน padding ด้วย override แล้วไม่เปลี่ยนตาม
โดย eange08 พ 03 มี.ค. 2021 4:43 pm บอร์ด Joomla Development
1
22
พ 03 มี.ค. 2021 4:47 pm โดย tsukasaz
Joomla PDPA ใช้ EB Sticky Cookie Notice โมดูล แสดงแจ้งเตือนการเก็บข้อมูล Cookie ของผู้ใช้งาน
โดย tsukasaz พ 03 มี.ค. 2021 4:39 pm บอร์ด Joomla Extension Review
0
21
พ 03 มี.ค. 2021 4:39 pm โดย tsukasaz
อัพเดทหรือยัง? ปรับปรุงเรื่องความปลอดภัย 9 จุด ใน Joomla 3.9.25
โดย tsukasaz พ 03 มี.ค. 2021 12:28 pm บอร์ด MindPHP News & Feedback
0
42
พ 03 มี.ค. 2021 12:28 pm โดย tsukasaz
B - เปิดหน้าเว็บด้วย template เป็น Shaper_megadeal_ii แล้ว Error 404
โดย eange08 พ 03 มี.ค. 2021 12:04 pm บอร์ด เว็บไซต์ Rnyard - Tester
2
7
พ 03 มี.ค. 2021 7:25 pm โดย tsukasaz