คลาสเป็นแม่แบบสร้างอ็อบเจกต์ เมื่ออ็อบเจกต์ถูกสร้างขึ้นแล้ว จะไม่พึ่งพา class attribute อีกต่อไป และคลาสไม่ควบคุม attribute ของอินสแตนซ์ที่สร้างขึ้น
ตัวอย่าง MainClass มี class attribute และอ็อบเจกต์ที่สร้างจากมันมี instance attribute ของตัวเอง
โค้ดตัวอย่าง
class MainClass(object):
class_attr = 'Sun'
def __init__(self, instance_attr):
self.instance_attr = instance_attr
if __name__ == '__main__':
obj1 = MainClass('Mon')
obj2 = MainClass('Tue')
# พิมพ์ instance attributes
print(obj1.instance_attr)
print(obj2.instance_attr)
# พิมพ์ class attribute ผ่าน MainClass
print(MainClass.class_attr)
# พิมพ์ class attribute ผ่านอ็อบเจกต์
print(obj1.class_attr)
print(obj2.class_attr)
# พิมพ์ instance attribute ผ่านคลาสจะ error
# print(MainClass.instance_attr)
ผลลัพธ์
Mon
Tue
Sun
Sun
Sun