Junior — Middle
Mi a különbség az osztály tulajdonsága és egy egyedi objektum tulajdonsága között a programkódban?
sobes.tech MI
Válasz az MI-től
Egy osztály tulajdonsága egy olyan attribútum, amely maga az osztályhoz tartozik, és minden példányára közös. Egy objektum tulajdonsága pedig egy olyan attribútum, amely egy adott osztálypéldányhoz tartozik.
Ha módosítja az osztály tulajdonságát, ez a módosítás minden olyan objektumban látható lesz, amely nem írta felül ezt a tulajdonságot. Ha módosítja az objektum tulajdonságát, az csak arra az adott példányra lesz hatással.
Példa:
class MyClass:
class_attr = 10 # osztály tulajdonsága
obj1 = MyClass()
obj2 = MyClass()
print(obj1.class_attr) # 10
print(obj2.class_attr) # 10
obj1.class_attr = 20 # létrejön egy objektum tulajdonság az obj1 számára
print(obj1.class_attr) # 20 (objektum tulajdonság)
print(obj2.class_attr) # 10 (osztály tulajdonság)
print(MyClass.class_attr) # 10
MyClass.class_attr = 30
print(obj2.class_attr) # 30 (frissített osztály tulajdonság)
print(obj1.class_attr) # 20 (az objektum tulajdonsága nem változott)
Így az osztály tulajdonságai közös értékeket határoznak meg, míg az objektum tulajdonságai minden példány számára egyediek.