ทำไมต้องเขียน Getter และ Setter
- Getter และ Setter ช่วยให้เราสามารถควบคุมการกระทำการเปลี่ยนแปลงภายในคลาสได้
- Getter และ Setter ช่วยให้เราสามารถตรวจสอบความถูกต้องของค่าของข้อมูลที่เอาใส่ได้
- Getter และ Setter ป้องกันการดึงคำสั่งหรือข้อมูลไปใช้งานนอกจากที่เรากำหนดได้
[python]
class apple():
def __init__(self):
self.__num = 0 # ค่าคงที่ของตัวแปรที่ private ไว้
self.__star = 0 # ค่าคงที่ของตัวแปรที่ private ไว้
def setNum(self, num): # Setter method
self.__num = num
def getNum(self): # Getter method
return self.__num
def setStar(self, star): # Setter method
self.__star = star
def getStar(self): # Getter method
return self.__star
a = apple()
a.setNum(1)
a.setStar(5)
print(a.getNum())
print(a.getStar())
[/python]
ผลลัพธ์
1
5
หากเราลองเพิ่มคำสั่งเพื่อดึงวัตถุออกมา
[python]
print(a._star())
print(a._num())
[/python]
จะพบกับ
[python]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'apple' object has no attribute '_star'
[/python]
เพราะทั้งวัตถุ a._star() และ a._num() ถูกป้องกันการเข้าถึงโดยตรงจาก Getter และ Setter ครับ
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)