Code Tu Tam

OOP Python – Biến tĩnh trong Python

Biến tĩnh trong lập trình Python

Biến tĩnh trong lập trình Python

5/5 - (1 bình chọn)

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.

Những đặc điểm của 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ác lưu ý khi sử dụng biến tĩnh trong Python

Tổng kết

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.

 

Exit mobile version