นี่ไม่เกี่ยวกับ@staticmethod
และ@classmethod
! ฉันรู้ว่าstaticmethod
ทำงานอย่างไร สิ่งที่ฉันต้องการทราบคือกรณีการใช้งานที่เหมาะสมสำหรับ@staticmethod
vs. ฟังก์ชันระดับโมดูล
ฉันได้ลองคำถามนี้และดูเหมือนว่ามีข้อตกลงทั่วไปที่ต้องการฟังก์ชั่นโมดูลในระดับมากกว่าวิธีคงที่เพราะมันเป็นแบบ pythonic วิธีการแบบสแตติกมีข้อได้เปรียบของการถูกผูกไว้กับคลาสของมันซึ่งอาจสมเหตุสมผลถ้าคลาสนั้นใช้เท่านั้น อย่างไรก็ตามในฟังก์ชั่น Python มักจะจัดระเบียบโดยโมดูลไม่ได้เรียนดังนั้นมักจะทำให้ฟังก์ชั่นโมดูลทำให้รู้สึกเกินไป
วิธีการแบบสแตติกสามารถแทนที่ได้ด้วยคลาสย่อยซึ่งเป็นข้อดีหรือข้อเสียขึ้นอยู่กับว่าคุณมองอย่างไร แม้ว่าวิธีการแบบสแตติกมักจะ "บริสุทธิ์ตามหน้าที่" ดังนั้นการเอาชนะมันอาจไม่ฉลาด แต่บางครั้งก็สะดวก (แม้ว่านี่อาจเป็นหนึ่งใน "สะดวก แต่ไม่เคยทำ" สิ่งที่มี แต่ประสบการณ์เท่านั้นที่สามารถสอนคุณได้)
มีกฎทั่วไปหรือไม่สำหรับการใช้ฟังก์ชั่นสแตติกวิธีการหรือโมดูลระดับ? พวกเขามีข้อดีหรือข้อเสียที่เป็นรูปธรรมใดบ้าง (เช่นส่วนขยายในอนาคตส่วนขยายภายนอกความสามารถในการอ่าน) ถ้าเป็นไปได้ก็ให้ตัวอย่างกรณี