ฉันควรใช้วิธีการคงที่เมื่อใด

สารบัญ:

ฉันควรใช้วิธีการคงที่เมื่อใด
ฉันควรใช้วิธีการคงที่เมื่อใด
Anonim

คุณควรใช้วิธีคงที่ทุกเมื่อ

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

เมื่อใดที่คุณจะไม่ใช้วิธีคงที่

ไม่สามารถใช้วิธีการแบบคงที่ได้ สำหรับสิ่งที่เป็นนามธรรมและการสืบทอด คุณไม่สามารถประกาศวิธีการแบบคงที่ในอินเทอร์เฟซหรือวิธีการนามธรรมแบบคงที่ในคลาสนามธรรม วิธีสแตติกไม่สามารถเข้าถึงสมาชิกระดับคลาสที่ไม่คงที่ ไม่ใช่ของตัวเองหรือคลาสพื้นฐาน

วิธีการคงที่คืออะไร

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

ใช้วิธีคงที่ดีไหม

A " ปลอดภัย" วิธีคงที่จะให้ผลลัพธ์เดียวกันเสมอสำหรับอินพุตเดียวกัน มันแก้ไขไม่มี globals และไม่เรียกวิธีการคงที่ "ไม่ปลอดภัย" ของคลาสใด ๆ โดยพื้นฐานแล้ว คุณกำลังใช้การเขียนโปรแกรมแบบฟังก์ชันที่จำกัด ไม่ต้องกลัวสิ่งเหล่านี้ ไม่เป็นไร

ฉันควรใช้วิธีคงที่ Python หรือไม่

ข้อดีของวิธีคงที่ Python

  • หากคุณไม่ต้องการเข้าถึงแอตทริบิวต์หรือวิธีการของคลาสหรืออินสแตนซ์ staticmethod จะดีกว่า classmethod หรือ instancemethod …
  • ลายเซ็นการโทรของ staticmethod เหมือนกับ classmethod หรือ instancemethod นั่นคือ.