Phạm vi của biến

Bài 5/5 · khoảng 7 phút đọc

Biến tạo bên trong hàm chỉ tồn tại trong hàm đó — gọi là biến cục bộ. Ra khỏi hàm, nó biến mất, giống như đồ để trong phòng riêng không mang ra ngoài được.

Python · ví dụ lỗi
def tinh():
ket_qua = 100
tinh()
print(ket_qua)

ket_qua chỉ có trong tinh(), nên ở ngoài Python báo NameError.

Biến toàn cục

Biến tạo bên ngoài mọi hàm là biến toàn cục; hàm có thể đọc nó:

Python
ten = "Lan"
def chao():
print("Xin chào", ten)
chao()

Tham số cũng là biến cục bộ

Python
def them_mot(x):
x = x + 1
return x
so = 5
print(them_mot(so))
print(so)

Giá trị so ngoài hàm vẫn là 5: hàm chỉ thay đổi bản sao x của nó.

Lời khuyên

Hãy truyền dữ liệu vào bằng tham số và nhận kết quả bằng return thay vì dùng biến toàn cục. Hàm viết như vậy dễ hiểu và ít gây lỗi hơn.

Ghi nhớ: biến tạo trong hàm chỉ dùng được trong hàm (cục bộ). Hãy truyền dữ liệu bằng tham số và lấy kết quả bằng return.

Vì sao ví dụ đầu tiên lỗi `NameError`?

Vì ket_qua là biến cục bộ của hàm tinh, không tồn tại bên ngoài hàm.

Phạm vi của biến · Lý thuyết Python · PyKid