पाठ 24 / 47

इंस्टेंस बनाम क्लास एट्रिब्यूट

एक ऑब्जेक्ट का डेटा बनाम क्लास के सभी ऑब्जेक्ट में साझा डेटा।

दो तरह के एट्रिब्यूट

इंस्टेंस एट्रिब्यूट (self.x = ... से) हर ऑब्जेक्ट में अलग होते हैं। क्लास एट्रिब्यूट क्लास पर परिभाषित होते हैं और हर इंस्टेंस साझा करता है।

class Dog:
    species = "Canis familiaris"   # class attribute

    def __init__(self, name):
        self.name = name              # instance attribute

a = Dog("Rex")
b = Dog("Fido")
print(a.species, b.species)  # same for both
print(a.name, b.name)        # different

बदलाव में सावधानी

क्लास से क्लास एट्रिब्यूट बदलना (Dog.species = ...) सभी इंस्टेंस को प्रभावित करता है; एक इंस्टेंस पर सेट करना (a.species = ...) सिर्फ़ उस ऑब्जेक्ट के लिए उसे छिपा देता है।