5 พฤษภาคม 2558

Published พฤษภาคม 05, 2558 by with 0 comment

อ๊อบเจ็กและคลาสใน Python ตอนที่ 3 Getter & Setter Method

บทความนี้เราจะไปเขียน Getter & Setter Method ในอ๊อบเจ็กและคลาสบนภาษา Python กันครับ

ทำไมต้องเขียน 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 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)