Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

อธิบายตัวแปรภายในและภายนอก __init__() ในคลาส Python

Class Variables vs Instance Variables

ตัวแปรทั้งหมด นอก ฟังก์ชัน __init__ ใน Python คือ Class Variables ส่วนที่อยู่ ใน __init__ คือ Instance Variables

ความแตกต่างเข้าใจง่ายจากโค้ด:

ตัวอย่าง

class MyClass:
    stat_elem = 456          # Class Variable
    def __init__(self):
        self.object_elem = 789  # Instance Variable

c1 = MyClass()
c2 = MyClass()

# Initial values
print(c1.stat_elem, c1.object_elem)  # 456 789
print(c2.stat_elem, c2.object_elem)  # 456 789

# เปลี่ยน Class Variable
MyClass.stat_elem = 888
print(c1.stat_elem, c1.object_elem)  # 888 789
print(c2.stat_elem, c2.object_elem)  # 888 789

# เปลี่ยน Instance Variable ของ c1
c1.object_elem = 777
print(c1.stat_elem, c1.object_elem)  # 888 777
print(c2.stat_elem, c2.object_elem)  # 888 789

Class Variable แชร์ร่วมกัน Instance Variable แยกต่างหากต่อ Instance