ใน python ทุกอย่างเป็นวัตถุ และทุกอ็อบเจ็กต์มีคุณสมบัติและเมธอดหรือฟังก์ชัน แอตทริบิวต์อธิบายโดยตัวแปรข้อมูล เช่น ชื่อ อายุ ส่วนสูง เป็นต้น
คุณสมบัติเป็นแอตทริบิวต์ชนิดพิเศษที่มีเมธอด getter, setter และ delete เช่น __get__, __set__ และ __delete__ method
อย่างไรก็ตาม มีมัณฑนากรคุณสมบัติใน Python ซึ่งให้การเข้าถึง getter/setter กับคุณสมบัติ Properties เป็นแอตทริบิวต์ชนิดพิเศษ โดยพื้นฐานแล้ว เมื่อ Python พบโค้ดต่อไปนี้:
foo = SomeObject() print(foo.bar)
มันค้นหาแถบใน foo แล้วตรวจสอบแถบเพื่อดูว่ามี __get__, __set__ หรือ __delete__ วิธี และ หากเป็นเช่นนั้น แสดงว่าเป็นคุณสมบัติ หากเป็นคุณสมบัติ แทนที่จะส่งคืนวัตถุแท่ง มันจะเรียกเมธอด __get__ และส่งคืนเมธอดที่ส่งคืนมา
ใน Python คุณสามารถกำหนด getters, setters และ delete method ด้วยฟังก์ชันคุณสมบัติ หากคุณต้องการเพียงแค่คุณสมบัติ read ก็ยังมี @property decorator ที่คุณสามารถเพิ่มเหนือวิธีการของคุณ
class C(object): def __init__(self): self._x = None #C._x is an attribute @property def x(self): """I'm the 'x' property.""" return self._x # C._x is a property This is the getter method @x.setter # This is the setter method def x(self, value): self._x = value @x.deleter # This is the delete method def x(self): del self._x