Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธี Getters/Setters สำหรับ Python Class คืออะไร


ใช้ Getters และ setters ในภาษาการเขียนโปรแกรมเชิงวัตถุจำนวนมากเพื่อให้แน่ใจถึงหลักการของการห่อหุ้มข้อมูล พวกเขาเป็นที่รู้จักในฐานะวิธีการกลายพันธุ์เช่นกัน การห่อหุ้มข้อมูลถือเป็นการรวมกลุ่มของข้อมูลกับวิธีการที่ทำงานกับข้อมูลเหล่านี้ แน่นอนว่าวิธีการเหล่านี้เป็นตัวรับสำหรับการดึงข้อมูลและตัวตั้งค่าสำหรับการเปลี่ยนแปลงข้อมูล ตามหลักการนี้ คุณลักษณะของคลาสถูกกำหนดให้เป็นส่วนตัวเพื่อซ่อนและปกป้องพวกเขาจากรหัสอื่น

น่าเสียดาย เป็นที่เชื่อกันอย่างกว้างขวางว่าคลาส Python ที่เหมาะสมควรสรุปคุณลักษณะส่วนตัวโดยใช้ getters และ setters การใช้ getters และ setters ไม่ใช่เรื่องง่ายและสวยงาม วิธี pythonic ในการทำเช่นนี้คือการใช้คุณสมบัติหรือคลาสที่มีคุณสมบัติ วิธีการที่ใช้ในการรับค่าจะถูกตกแต่งด้วย "@property" เมธอดที่ต้องทำหน้าที่เป็น setter นั้นตกแต่งด้วย "@x.setter"

ตัวอย่าง

ตัวอย่างการใช้ getters และ setters มีดังนี้

class P:
    def __init__(self,x):        
         self.__set_x(x)
    def __get_x(self):        
        return self.__x
    def __set_x(self, x):  
         if x < 0:            
           self.__x = 0  
        elif x > 1000:            
           self.__x = 1000        
        else:      
          self.__x = x
    x = property(__get_x, __set_x)