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

Từ khóa toàn cầu bằng Python

Các biến khác nhau trong một chương trình python có phạm vi khác nhau. Tùy thuộc vào nơi nó được khai báo, biến có thể có hoặc không thể truy cập được bên trong một hàm. Đôi khi chúng ta sẽ cần sửa đổi một biến có bên trong một hàm từ bên ngoài phạm vi hiện tại của nó. Trong trường hợp như vậy, chúng tôi sử dụng từ khóa toàn cục với tên biến.

Sau đây là những điểm chính về từ khóa toàn cầu

  • Theo mặc định, một biến được khai báo bên ngoài một hàm là một biến toàn cục.

  • Chúng tôi sử dụng từ khóa toàn cục cho một biến bên trong một hàm để nó có thể được sửa đổi.

  • Không có từ khóa toàn cục, biến bên trong một hàm là cục bộ theo mặc định.

Không có Toàn cầu

Trong các ví dụ dưới đây, chúng ta sẽ thấy sự thay đổi biến số diễn ra như thế nào mà không có từ khóa toàn cục. Điều này sẽ giúp chúng tôi hiểu, từ khóa toàn cầu tạo ra sự khác biệt gì trong chương trình tiếp theo. Trong ví dụ dưới đây, chúng tôi cố gắng sửa đổi biến toàn cục bên trong hàm. Nhưng một lỗi xảy ra vì chúng tôi không thể sửa đổi một biến toàn cục bên trong một hàm.

Ví dụ

var = 321
# function to modify the variable
def modify():
   var = var * 2
   print(var)
# calling the function
modify()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

UnboundLocalError: local variable 'var' referenced before assignment

Với Toàn cầu

Bây giờ chúng ta khai báo biến bên trong hàm cùng với từ khóa global. Điều này làm cho biến có thể sửa đổi được.

Ví dụ

var = 321
# function to modify the variable
def modify():
   global var
   var = var * 2
   print(var)
# calling the function
modify()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

642

Toàn cầu trong các Hàm lồng nhau

Nếu chúng ta phải sử dụng các hàm lồng nhau thì chúng ta phải khai báo từ khóa global trong hàm bên trong để biến có thể được sửa đổi.

Ví dụ

def outer_func():
   var = 321
# function to modify the variable
   def modify():
      global var
   var = var * 2
   print(var)
# calling the function
   modify()
outer_func()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

642