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

Biến lớp hay biến tĩnh 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à lớp hoặc biến tĩnh trong python. 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 thể hiện.

Biến lớp hoặc biến tĩnh khá 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à một chương trình để chứng minh việc sử dụng 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) # This is Fruit.count
print (type(pears).count) # So is this

if __name__ == '__main__':
main()

Kết quả

3
4
7
7
7

Một ví dụ khác để chứng minh việc sử dụng biến được xác định ở cấp độ lớp -

Ví dụ

Ví dụ về lớp
class example:
staticVariable = 9 # Access through class

print (example.staticVariable) # Gives 9

#Access through an instance
instance = example()
print(instance.staticVariable) #Again gives 9

#Change within an instance
instance.staticVariable = 12
print(instance.staticVariable) # Gives 12
print(example.staticVariable) #Gives 9

đầu ra

9
9
12
9