Biến global: khai báo ngoài hàm, truy cập được mọi nơi. Biến local: chỉ trong scope hàm.
Truy cập global (read-only)
k = "I like green tea" # Global
def foo():
print(k) # Truy cập global
foo() # I like green tea
print(k) # I like green tea
Sửa global (cần từ khóa global)
count = 0
def increment():
global count
count += 1
increment()
print(count) # 1
Che biến global (shadowing)
x = 10
def foo():
x = 20 # Tạo local x mới
print(x) # 20
foo()
print(x) # 10 (global không đổi)
Best practice
- Hạn chế sửa global state.
- Dùng class/closure/module-level config object.
- Constants (UPPER_CASE) dùng global an toàn.