Computer >> Máy Tính >  >> Lập trình >> Python

Biến cục bộ và toàn cục trong Python?

Có hai loại biến:biến toàn cục và biến cục bộ.

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ộ được 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 có thể truy cập biến cục bộ chỉ trong hàm 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ẽ thông qua một 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ác hàm (func ()) được định nghĩa trong chương trình.

Biến cục bộ

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

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

def sum(x,y):
sum = x + y
return sum
print(sum(5, 10))

Đầu ra

15

Các biến x và y sẽ chỉ hoạt động / được sử dụng 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 sử dụng biến cục bộ bên ngoài phạm vi của chúng, có thể thông qua NameError. Vì vậy, rõ ràng dòng bên dưới sẽ không hoạt động.

print(x)

Biến toàn cục

Một biến toàn cục có thể được sử 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 bằng một ví dụ rất đơn giản -

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

Đầu ra

25
20

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

Ví dụ dưới đây cho thấy sự kết hợp của các biến cục bộ và toàn cục và các 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)

Đầu ra

45 17 81 9
45 15 3 4