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