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

Biến Toàn cục (Global) và Biến Cục bộ (Local) trong Python


Có hai loại biến: biến toàn cục (global variables) và biến cục bộ (local variables).

Phạm vi của biến toàn cục là toàn bộ chương trình trong khi phạm vi của biến cục bộ giới hạn trong hàm nơi nó được định nghĩa.

def func():
    x = "Python"
    print(x)
    print(s)

s = "Tutorialspoint"
print(s)
func()
print(x)

Trong chương trình trên - x là biến cục bộ trong khi s là biến toàn cục, chúng ta chỉ có thể truy cập biến cục bộ trong hàm nó được định nghĩa (func() ở trên) và cố gắng gọi biến cục bộ bên ngoài phạm vi của nó (func()) sẽ ném lỗi. Tuy nhiên, chúng ta có thể gọi biến toàn cục ở bất kỳ đâu trong chương trình bao gồm cả hàm (func()) được định nghĩa trong chương trình.

Biến cục bộ (Local variables)

Biến cục bộ chỉ có thể truy cập được trong phạm vi của chúng (như func() ở trên).

Như trong chương trình dưới - có hai biến cục bộ – x và y.

def sum(x, y):
    sum = x + y
    return sum

print(sum(5, 10))

Kết quả

15

Các biến x và y chỉ hoạt động/dùng được bên trong hàm sum() và chúng không tồn tại bên ngoài hàm. Vì vậy cố gắng dùng biến cục bộ bên ngoài phạm vi của chúng, có thể ném NameError. Vì vậy dòng dưới rõ ràng sẽ không hoạt động.

print(x)

Biến toàn cục (Global variables)

Một biến toàn cục có thể dùng ở bất kỳ đâu trong chương trình vì phạm vi của nó là toàn bộ chương trình.

Hãy hiểu biến toàn cục qua ví dụ rất đơn giản:

z = 25
def func():
    global z
    print(z)
    z = 20

func()
print(z)

Kết quả

25
20

Khi gọi func(), giá trị biến toàn cục bị thay đổi cho toàn bộ chương trình.

Ví dụ dưới cho thấy sự kết hợp của biến cục bộ, toàn cục và tham số hàm:

def func(x, y):
    global a
    a = 45
    x, y = y, x
    b = 33
    b = 17
    c = 100
    print(a, b, x, y)

a, b, x, y = 3, 15, 3, 4
func(9, 81)
print(a, b, x, y)

Kết quả

45 17 81 9
45 15 3 4