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

Làm thế nào để khai báo một biến toàn cục trong Python?

Biến toàn cục là gì?

Biến toàn cục là một biến được khai báo bên ngoài hàm nhưng chúng ta cần sử dụng nó bên trong hàm.

Ví dụ

def func():
   print(a)
a=10
func()

Đầu ra

10

Ở đây, biến a là toàn cục. Vì nó được khai báo bên ngoài hàm và cũng có thể được sử dụng bên trong hàm. Do đó, phạm vi của biến a là toàn cục.

Chúng ta sẽ xem điều gì sẽ xảy ra nếu chúng ta tạo một biến có cùng tên với biến toàn cục bên trong hàm.

Trong ví dụ trên, biến a được khai báo bên ngoài hàm và do đó là toàn cục.

Nếu chúng ta khai báo một biến khác có cùng tên bên trong hàm với một số giá trị khác. Biến đó sẽ hoạt động như biến cục bộ của hàm và phạm vi của nó sẽ được giới hạn bên trong hàm. Bên ngoài hàm, biến toàn cục sẽ giữ giá trị ban đầu của nó.

Nó có thể được hiểu rõ hơn với sự trợ giúp của một ví dụ.

Ví dụ

a=10
def func():
   a=5
print("Inside function:",a)
func()
print("Outside function:",a)

Đầu ra

Inside function: 5
Outside function: 10

Trong ví dụ trên, a là biến toàn cục có giá trị là 10. Sau đó hàm func () được gọi.

Bên trong func (), một biến a khác được khai báo với giá trị khác có phạm vi chỉ giới hạn bên trong hàm. Do đó, khi giá trị của a được in ra bên ngoài hàm sau này, nó mang cùng giá trị ban đầu với biến toàn cục là 10.

Từ khóa:global

Từ khóa global được sử dụng khi bạn cần khai báo một biến toàn cục bên trong một hàm.

Phạm vi của biến bình thường được khai báo bên trong hàm chỉ đến cuối hàm.

Tuy nhiên, nếu bạn cũng muốn sử dụng biến bên ngoài hàm, hãy sử dụng từ khóa toàn cục trong khi khai báo biến.

Hiểu sự khác biệt giữa cả hai với sự trợ giúp của các triển khai mẫu.

Ví dụ

def func():
   a=5
   print("Inside function:",a)
func()
print("Outside function:",a)

Đầu ra

Inside function: 5
Traceback (most recent call last):
print("Outside function:",a)
NameError: name 'a' is not defined

Trong ví dụ trên, giá trị của a không thể được truy cập bên ngoài hàm, vì nó là một biến cục bộ. Do đó, việc truy cập giá trị của một hàm bên ngoài sẽ tạo ra một ngoại lệ.

Sử dụng từ khóa toàn cầu

Ngoại lệ nêu ra trong ví dụ trên có thể được giải quyết nếu chúng ta khai báo biến a bằng cách sử dụng từ khóa global.

Ví dụ

def func():
   global a
   a=5
   print("Inside function:",a)
func()
print("Outside function:",a)

Đầu ra

Inside function: 5
Outside function: 5

Trong ví dụ trên, biến a là toàn cục và do đó giá trị của nó cũng có thể được truy cập bên ngoài hàm.