Computer >> Máy Tính >  >> Lập trình >> Python

Giải thích các biến bên trong và bên ngoài của một hàm lớp __init __ () trong Python.

Biến lớp so với Biến phiên bản

Tất cả các biến bên ngoài hàm __init__ lớp trong Python là các biến lớp trong khi các biến bên trong cùng là các biến thể hiện. Sự khác biệt giữa các biến lớp và biến phiên bản được hiểu rõ hơn bằng cách kiểm tra đoạn mã dưới đây

Ví dụ

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