Một instance hoặc các biến non-static là khác nhau đối với các đối tượng khác nhau. Trong khi đó tất cả các đối tượng có thể sử dụng các biến tĩnh (hay còn gọi là biến của lớp).
Tham khảo thêm lập trình hướng đối tượng Python.
Ví dụ, 1 học sinh lớp khoa học máy tính được đại diện bằng class CSStudent. Class này có 1 biến tính với giá trị “cse”. Đồng thời class này có các biến non-static là name và roll.
Trong C++ và Java chúng ta cần sử dụng từ khóa static để chỉnh định biến tĩnh.
Đối với python, cơ chế này khá đơn giản, nó không yêu cầu từ khóa static.
Chú ý: Tất cả các biến được gán giá trị trong khai báo lớp đều là biến tĩnh (class variable/static variable). Và Tất cả các biến được gán giá trị trong các phương thức thì được gọi là biến thể hiện (instance variable)
# Python program to show that the variables with a value # assigned in class declaration, are class variables # Class for Computer Science Student class CSStudent: stream = 'cse' # Class Variable def __init__(self,name,roll): self.name = name # Instance Variable self.roll = roll # Instance Variable # Objects of CSStudent class a = CSStudent('Geek', 1) b = CSStudent('Nerd', 2) print(a.stream) # prints "cse" print(b.stream) # prints "cse" print(a.name) # prints "Geek" print(b.name) # prints "Nerd" print(a.roll) # prints "1" print(b.roll) # prints "2" # Class variables can be accessed using class # name also print(CSStudent.stream) # prints "cse" # Now if we change the stream for just a it won't be changed for b a.stream = 'ece' print(a.stream) # prints 'ece' print(b.stream) # prints 'cse' # To change the stream for all instances of the class we can change it # directly from the class CSStudent.stream = 'mech' print(a.stream) # prints 'ece' print(b.stream) # prints 'mech'
Kết quả
cse cse Geek Nerd 1 2 cse ece cse ece mech
Cơ chế xử lý biến tĩnh trong Python có 1 vài sự khác biệt so với ngôn ngữ lập trình khác. Việc khai báo biến tĩnh với Python cũng dễ dàng hơn rất nhiều. Điều này có thể tạo ra 1 vài khó khăn cho những bạn mới làm quen với Python. Hi vọng với bài viết này giúp bạn hiểu phần nào về biến tĩnh trong Python để ứng dụng vào công việc của mình hiệu quả.
Ngoài ra các bạn nên xem thêm bài viết về hàm tĩnh trong Python.
Bình luận: