Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Khác biệt giữa biến global và local trong Python

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.