पाठ 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 = ...) सिर्फ़ उस ऑब्जेक्ट के लिए उसे छिपा देता है।