Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Biến Lớp (Class Variables) hoặc Biến Tĩnh (Static Variables) trong Python


Khi chúng ta khai báo một biến bên trong một lớp nhưng bên ngoài bất kỳ phương thức nào, nó được gọi là biến lớp hoặc biến tĩnh trong Python. Biến lớp hoặc biến tĩnh có thể được tham chiếu thông qua một lớp nhưng không trực tiếp thông qua một instance.

Biến lớp hoặc biến tĩnh hoàn toàn khác biệt và không xung đột với bất kỳ biến thành viên nào khác có cùng tên. Dưới đây là chương trình minh họa việc sử dụng biến lớp hoặc biến tĩnh:

Ví dụ

class Fruits(object):
    count = 0
    def __init__(self, name, count):
        self.name = name
        self.count = count
        Fruits.count = Fruits.count + count

def main():
    apples = Fruits("apples", 3)
    pears = Fruits("pears", 4)
    print(apples.count)
    print(pears.count)
    print(Fruits.count)
    print(apples.__class__.count)  # Đây là Fruits.count
    print(type(pears).count)       # Cũng là Fruits.count

if __name__ == '__main__':
    main()

Kết quả

3
4
7
7
7

Ví dụ khác minh họa việc sử dụng biến được định nghĩa ở cấp độ lớp:

Ví dụ

class example:
    staticVariable = 9
    # Truy cập thông qua lớp
    print(example.staticVariable)  # Cho 9
    # Truy cập thông qua một instance
    instance = example()
    print(instance.staticVariable)  # Lại cho 9
    # Thay đổi trong một instance
    instance.staticVariable = 12
    print(instance.staticVariable)  # Cho 12
    print(example.staticVariable)   # Cho 9

Kết quả

9
9
12
9