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

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


ตัวแปรคลาสเทียบกับตัวแปรอินสแตนซ์

ตัวแปรทั้งหมดที่อยู่นอกฟังก์ชันคลาส __init__ ใน Python เป็นตัวแปรคลาสในขณะที่ตัวแปรที่อยู่ในตัวเดียวกันคือตัวแปรอินสแตนซ์ ความแตกต่างระหว่างตัวแปรคลาสและตัวแปรอินสแตนซ์นั้นสามารถเข้าใจได้ดีขึ้นโดยการตรวจสอบโค้ดด้านล่าง

ตัวอย่าง

class MyClass:
    stat_elem = 456
    def __init__(self):
        self.object_elem = 789
c1 = MyClass()
c2 = MyClass()
# Initial values of both elements
>>> print c1.stat_elem, c1.object_elem
456 789
>>> print c2.stat_elem, c2.object_elem
456 789
# Let's try changing the static element
MyClass.static_elem = 888
>>> print c1.stat_elem, c1.object_elem
888 789
>>> print c2.stat_elem, c2.object_elem
888 789
# Now, let's try changing the object element
c1.object_elem = 777
>>> print c1.stat_elem, c1.object_elem
888 777
>>> print c2.stat_elem, c2.object_elem
888 789