1. Kiến thức trọng tâm
Phạm vi của biến là vùng trong chương trình mà biến có thể được sử dụng. Trong Python, biến được khai báo trong hàm được gọi là biến cục bộ: nó chỉ tồn tại và chỉ được sử dụng bên trong hàm đó, khi hàm kết thúc thì biến cục bộ bị huỷ. Ngược lại, biến được khai báo ngoài mọi hàm được gọi là biến toàn cục: nó có thể được sử dụng ở bất cứ đâu trong chương trình, kể cả bên trong các hàm.
Một biến cục bộ và một biến toàn cục có thể trùng tên nhưng chúng là hai biến hoàn toàn khác nhau, lưu trữ hai giá trị độc lập. Việc hiểu rõ điều này giúp tránh nhầm lẫn khi chương trình có nhiều hàm cùng dùng tên biến giống nhau.
Nếu trong hàm muốn thay đổi giá trị của biến toàn cục, cần khai báo từ khoá global trước tên biến. Tuy nhiên, việc dùng biến toàn cục quá nhiều làm chương trình khó theo dõi và dễ phát sinh lỗi, vì vậy người lập trình thường ưu tiên dùng biến cục bộ và truyền dữ liệu qua tham số và giá trị trả về của hàm.
2. Ví dụ minh họa
Ví dụ: Xét chương trình sau và cho biết kết quả in ra.
x = 10
def tang():
x = 5
print("Trong hàm:", x)
tang()
print("Ngoài hàm:", x)
Lời giải: Biến x = 10 ngoài hàm là biến toàn cục. Biến x = 5 trong hàm tang() là biến cục bộ, hoàn toàn khác với biến toàn cục dù trùng tên. Chương trình in ra "Trong hàm: 5" rồi "Ngoài hàm: 10". Lệnh gán trong hàm không làm thay đổi giá trị của biến toàn cục.
3. Ghi nhớ
- Biến cục bộ chỉ dùng được trong hàm; biến toàn cục dùng được khắp chương trình.
- Biến cục bộ và biến toàn cục trùng tên là hai biến độc lập.
- Hạn chế dùng biến toàn cục; nên truyền dữ liệu qua tham số và
return.
