Global variable: Khai báo ở cấp độ module, truy cập được mọi nơi.
Local variable: Khai báo trong hàm, chỉ truy cập trong scope hàm đó.
Ví dụ
q = "I love coffee" # Global
def f():
p = "Me Tarzan, You Jane." # Local
print(p)
f()
print(q)
Đầu ra
Me Tarzan, You Jane. I love coffee
Quy tắc truy cập
- Trong hàm: Python tìm Local -> Enclosing -> Global -> Built-in (LEGB).
- Gán giá trị (
x = ...) trong hàm -> tạo biến local mới (che global). - Chỉ đọc -> dùng giá trị global/enclosing nếu không có local.
Sửa global trong hàm
count = 0
def increment():
global count
count += 1
increment()
print(count) # 1
Best practice
- Hạn chế global state (khó test, debug, thread-safety).
- Dùng class hoặc closure để đóng gói state.
- Constants (hằng số) viết HOA:
MAX_SIZE = 100- dùng global an toàn.