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

     Method (เมธอด) คือ ความสามารถในการทำงานของ Object (อ๊อบเจ็ค) มันถูกสร้างขึ้นมาพร้อมกับการสร้างออบเจ็กต์ ซึ่งออบเจ็กต์ที่สร้างจาก Class (คลาส) เดียวกันก็จะมีรายการของเมธอดต่างๆ เหมือนกัน และในบทความนี้เราจะมาพูดถึง Static Method หรือ การใช้งานเมธอดแบบคงที่ใน ภาษาไพทอน กัน

Static Method

     Static method คือ การทำให้ฟังก์ชันสามารถเรียกใช้ได้เลย โดยข้อมูลไม่มีการเปลี่ยนแปลง สามารถใช้ function ใน class static ได้ แต่ไม่สามารถเข้าถึง instance ของคลาสนั้นได้ สำหรับบางเมธอด อาจไม่จำเป็นต้องใช้ข้อมูลแอตทริบิวต์ ที่รับเข้ามาจากทาง init แต่จะใช้ค่าที่เปลี่ยนแปลงไปตามการเรียกเมธอดแต่ละครั้ง เช่น

class calculator:
    def __init__(self):
        pass

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

    def subtract(self,a,b):
        return a-b

     จากโค้ดจะเห็นได้ว่า เมื่อเราจะบวกหรือลบเลขอะไรก็ตาม สามารถกำหนดเป็นอาร์กิวเมนต์ให้แก่เมธอดเหล่านั้นได้เลย ดังนั้นเราสามารถแก้ไขคลาสตัวอย่างให้มีลักษณะ ดังนี้

1.) ไม่จำเป็นต้องมี init เพื่อรับค่าแอตทริบิวต์

2.) ไม่จำเป็นต้องสร้างอินสแตนซ์ เพราะเรากำหนดเป็นอาร์กิวเมนต์โดยตรงอยู่แล้ว

3.) สามารถเรียกเมธอดจากชื่อคลาสได้โดยตรง

     และจากลักษณะที่ได้กล่าวมานั้น จะเป็นเมธอดอีกรูปแบบหนึ่ง ซึ่งเราเรียกมันว่า Static Method โดยจะมีข้อกำหนดหลักๆ ดังนี้

- การใช้งานจะต้องระบุคำสั่ง @staticmethod ไว้ก่อนบรรทัดที่จะสร้างเมธอด

- กำหนดเมธอดด้วย def ตามปกติ โดยในส่วนของพารามิเตอร์ ไม่ต้องมี self เพราะไม่สามารถอ้างถึง Instance Attribute ได้

- ภายในเมธอดสามารถอ้างถึง Class Attribute หรือเมธอดอื่นๆ ผ่านชื่อคลาสได้โดยตรง

- การเรียกใช้เมธอดดังกล่าว จากภายนอกคลาส ก็ให้ระบุผ่านชื่อคลาส

ตัวอย่าง

class calculator:
    pi = 3.14

    @staticmethod
    def add(a,b):
        return a+b

    @staticmethod
    def subtract(a,b):
        return a-b

    @staticmethod
    def get_pi():
        return calculator.pi  #การอ้างถึง Class Attribute

    @staticmethod
    def increment(a):
        return calculator.add(a,1) #การอ้างถึงเมธอดอื่น

#การเรียกใช้งานภายนอกคลาส ซึ่งสามารถระบุผ่านชื่อคลาสได้โดยตรง
print(calculator.add(10,20),calculator.subtract(30,25),calculator.get_pi(),calculator.increment(99),
      sep ='\n')

ผลลัพธ์

ผลลัพธ์การใช้งาน Static Method
ผลลัพธ์การใช้งาน

     จากตัวอย่างที่ออกมา เป็นเพียงแนวทางให้เราเห็นลักษณะเด่นและการใช้งานของ Static Method เท่านั้น ซึ่งไม่จำเป็นที่ภายในคลาสจะต้องมีเฉพาะ Static Method เพียงอย่างเดียว เราสามารถมี Instance Method ด้วยก็ได้ และนอกจากนั้น เราก็ยังสามารถมี init เพื่อรับข้อมูลเข้ามาใช้งานภายในคลาสสำหรับกรณีอื่นที่ไม่เกี่ยวข้องกับ Static Method ได้อีกด้วย

 

 

ช่องทางการศึกษาเพิ่มเติมเกี่ยวกับ : Python

เทคนิคการเขียนไพทอน

ไพทอน การสร้างคลาส การเขียนโปรแกรมแบบออปเจ็ค Create Class OOP

Instance Method การเรียกใช้งานเมธอดผ่านอินสแตนซ์

Instance Attribute และ Initializer เมธอดชนิดพิเศษ

การเรียกใช้ฟังก์ชันแบบ Recursion ในไพทอน ฟังชันก์ทำงานซ้ำเรียกตัวเอง

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
โปรแกรมทางการบัญชี โปรแกรม Express
โดย Duanghathai Termtem อ 01 ธ.ค. 2020 6:56 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
22
อ 01 ธ.ค. 2020 6:56 pm โดย Duanghathai Termtem
Flow Account คืออะไร
โดย Duanghathai Termtem อ 01 ธ.ค. 2020 5:06 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
21
อ 01 ธ.ค. 2020 5:06 pm โดย Duanghathai Termtem
การประยุกต์ใช้โปรแกรม ACL และ Microsoft Excel ช่วยในการตรวจสอบ
โดย Duanghathai Termtem อ 01 ธ.ค. 2020 3:20 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
32
อ 01 ธ.ค. 2020 3:20 pm โดย Duanghathai Termtem
แนวทางแก้ปัญหา php error Uncaught Error: Call to undefined function mysql_real_escape_string() in...
โดย mindphp อ 01 ธ.ค. 2020 2:13 am บอร์ด PHP Knowledge
0
20
อ 01 ธ.ค. 2020 2:13 am โดย mindphp
วิธีการเดินทางจากกระบี่มากรุงเทพมหานคร
โดย Duanghathai Termtem จ 30 พ.ย. 2020 3:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
21
จ 30 พ.ย. 2020 3:46 pm โดย Duanghathai Termtem
การใช้ Canva ช่วยการนำเสนอ
โดย Duanghathai Termtem จ 30 พ.ย. 2020 3:13 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
38
จ 30 พ.ย. 2020 3:13 pm โดย Duanghathai Termtem
ภาษี หัก ณ ที่จ่าย บน ERP
โดย milk2533 ส 28 พ.ย. 2020 4:17 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
24
ส 28 พ.ย. 2020 4:17 pm โดย milk2533
ประโยชน์ของการใช้ปุ่ม Sendmail บน ERP
โดย milk2533 ส 28 พ.ย. 2020 1:40 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
15
ส 28 พ.ย. 2020 1:40 pm โดย milk2533