คุณควรใช้วิธีคงที่ทุกเมื่อ
- โค้ดในเมธอดไม่ได้ขึ้นอยู่กับการสร้างอินสแตนซ์และไม่ได้ใช้ตัวแปรอินสแตนซ์ใดๆ
- ส่วนหนึ่งของรหัสจะถูกแชร์โดยวิธีการอินสแตนซ์ทั้งหมด
- คำจำกัดความของวิธีการไม่ควรเปลี่ยนหรือแทนที่
เมื่อใดที่คุณจะไม่ใช้วิธีคงที่
ไม่สามารถใช้วิธีการแบบคงที่ได้ สำหรับสิ่งที่เป็นนามธรรมและการสืบทอด คุณไม่สามารถประกาศวิธีการแบบคงที่ในอินเทอร์เฟซหรือวิธีการนามธรรมแบบคงที่ในคลาสนามธรรม วิธีสแตติกไม่สามารถเข้าถึงสมาชิกระดับคลาสที่ไม่คงที่ ไม่ใช่ของตัวเองหรือคลาสพื้นฐาน
วิธีการคงที่คืออะไร
วิธีสแตติกมีจุดประสงค์หลักสองประการ: สำหรับ ยูทิลิตี้หรือเมธอดตัวช่วยที่ไม่ต้องการสถานะของอ็อบเจ็กต์ใดๆ เนื่องจากไม่จำเป็นต้องเข้าถึงตัวแปรอินสแตนซ์ การมีเมธอดแบบคงที่จึงทำให้ผู้เรียกไม่จำเป็นต้องสร้างอินสแตนซ์ของอ็อบเจ็กต์เพียงเพื่อเรียกใช้เมธอด
ใช้วิธีคงที่ดีไหม
A " ปลอดภัย" วิธีคงที่จะให้ผลลัพธ์เดียวกันเสมอสำหรับอินพุตเดียวกัน มันแก้ไขไม่มี globals และไม่เรียกวิธีการคงที่ "ไม่ปลอดภัย" ของคลาสใด ๆ โดยพื้นฐานแล้ว คุณกำลังใช้การเขียนโปรแกรมแบบฟังก์ชันที่จำกัด ไม่ต้องกลัวสิ่งเหล่านี้ ไม่เป็นไร
ฉันควรใช้วิธีคงที่ Python หรือไม่
ข้อดีของวิธีคงที่ Python
- หากคุณไม่ต้องการเข้าถึงแอตทริบิวต์หรือวิธีการของคลาสหรืออินสแตนซ์ staticmethod จะดีกว่า classmethod หรือ instancemethod …
- ลายเซ็นการโทรของ staticmethod เหมือนกับ classmethod หรือ instancemethod นั่นคือ.