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

การซ่อนข้อมูลใน Python


แอตทริบิวต์ของวัตถุอาจมองเห็นหรือไม่ปรากฏภายนอกคำจำกัดความของคลาส คุณต้องตั้งชื่อแอตทริบิวต์ด้วยเครื่องหมายขีดล่างคู่ จากนั้นแอตทริบิวต์เหล่านั้นจะไม่ปรากฏแก่บุคคลภายนอกโดยตรง

ตัวอย่าง

#!/usr/bin/python
class JustCounter:
   __secretCount = 0
   def count(self):
      self.__secretCount += 1
      print self.__secretCount
counter = JustCounter()
counter.count()
counter.count()
print counter.__secretCount

ผลลัพธ์

เมื่อโค้ดด้านบนถูกรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

1
2
Traceback (most recent call last):
   File "test.py", line 12, in <module>
      print counter.__secretCount
AttributeError: JustCounter instance has no attribute '__secretCount'

Python ปกป้องสมาชิกเหล่านั้นด้วยการเปลี่ยนชื่อภายในเพื่อรวมชื่อคลาส คุณสามารถเข้าถึงแอตทริบิวต์เช่น object._className__attrName หากคุณจะแทนที่บรรทัดสุดท้ายของคุณดังต่อไปนี้ มันก็เหมาะกับคุณ -

.........................
print counter._JustCounter__secretCount

เมื่อโค้ดด้านบนถูกรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

1
2
2