HomeLập trìnhPythonBiến toàn cục...

Biến toàn cục trong Python – Biến Python không cục bộ


Trong Python và hầu hết các ngôn ngữ lập trình, các biến được khai báo bên ngoài một hàm được gọi là biến toàn cục. Bạn có thể truy cập các biến như vậy bên trong và bên ngoài một hàm, vì chúng có phạm vi toàn cục.

Đây là một ví dụ về một biến toàn cầu:

x = 10 

def showX():
    print("The value of x is", x)
    
showX()
# The value of x is 10

biến x trong đoạn mã trên đã được khai báo bên ngoài một chức năng: x = 10.

Sử dụng showX() chức năng, chúng tôi vẫn có thể truy cập x bởi vì nó đã được khai báo trong một phạm vi toàn cầu.

Hãy xem một ví dụ khác cho thấy điều gì sẽ xảy ra khi chúng ta khai báo một biến bên trong một hàm và cố gắng truy cập nó ở nơi khác.

def X():
    x = 10 

X()

def showX():
    print("The value of x is", x)
    
showX()
NameError: name 'x' is not defined

Trong ví dụ trên, chúng tôi đã khai báo x bên trong một chức năng và cố gắng truy cập nó trong một chức năng khác. Điều này dẫn đến một NameError vì x không được xác định trên toàn cầu.

Đọc thêm  Cách xóa một ký tự cụ thể khỏi chuỗi trong Python

Các biến được định nghĩa bên trong các hàm được gọi là biến cục bộ. Giá trị của chúng chỉ có thể được sử dụng trong hàm nơi chúng được khai báo.

Bạn có thể thay đổi phạm vi của một biến cục bộ bằng cách sử dụng global từ khóa – mà chúng ta sẽ thảo luận trong phần tiếp theo.

cái gì global Từ khóa được sử dụng trong Python?

Từ khóa toàn cầu chủ yếu được sử dụng vì hai lý do:

  • Để sửa đổi giá trị của một biến toàn cục.
  • Để làm cho một biến cục bộ có thể truy cập được bên ngoài phạm vi cục bộ.

Hãy xem xét một số ví dụ cho từng kịch bản để giúp bạn hiểu rõ hơn.

Ví dụ #1 – Sửa đổi biến toàn cầu bằng cách sử dụng global từ khóa

Trong phần trước chúng ta đã khai báo một biến toàn cục, chúng ta đã không cố gắng thay đổi giá trị của biến. Tất cả những gì chúng tôi đã làm là truy cập và in giá trị của nó trong một hàm.

Hãy thử thay đổi giá trị của một biến toàn cục và xem điều gì sẽ xảy ra:

x = 10 

def showX():
    x = x + 2
    print("The value of x is", x)
    
showX()
# local variable 'x' referenced before assignment

Như bạn có thể thấy ở trên, khi chúng tôi cố gắng thêm 2 vào giá trị của x, chúng tôi đã gặp lỗi. Điều này là do chúng tôi chỉ có thể truy cập nhưng không thể sửa đổi x.

Để khắc phục điều đó, chúng tôi sử dụng global Biến đổi. Đây là cách:

x = 10 

def showX():
    global x
    x = x + 2
    print("The value of x is", x)
    
showX()
# The value of x is 12

Sử dụng global từ khóa trong đoạn mã trên, chúng tôi có thể sửa đổi x và thêm 2 vào giá trị ban đầu của nó.

Đọc thêm  Cách sử dụng cài đặt pip trong Python

Ví dụ #2 – Cách tạo một biến cục bộ có thể truy cập được bên ngoài phạm vi cục bộ bằng cách sử dụng global từ khóa

Khi chúng ta tạo một biến bên trong một hàm, không thể sử dụng giá trị của nó bên trong một hàm khác vì trình biên dịch không nhận ra biến đó.

Đây là cách chúng ta có thể khắc phục điều đó bằng cách sử dụng global từ khóa:

def X():
    global x
    x = 10 
    
X()
    
def showX():
    print("The value of x is", x)
    
showX()
# The value of x is 10

Để làm cho nó có thể cho x để có thể truy cập bên ngoài phạm vi cục bộ của nó, chúng tôi đã khai báo nó bằng cách sử dụng global từ khóa: global x.

Sau đó, chúng tôi đã gán một giá trị cho x. Sau đó, chúng tôi đã gọi hàm mà chúng tôi đã sử dụng để khai báo nó: X()

Khi chúng tôi gọi là showX() chức năng in giá trị của x khai báo trong X() chức năng, chúng tôi không gặp lỗi vì x có phạm vi toàn cầu.

Tóm lược

Trong bài viết này, chúng ta đã nói về biến toàn cục và biến cục bộ trong Python.

Các ví dụ cho thấy cách khai báo cả biến toàn cục và biến cục bộ.

Chúng tôi cũng đã nói về global từ khóa cho phép bạn sửa đổi giá trị của biến toàn cục hoặc làm cho biến cục bộ có thể truy cập được bên ngoài phạm vi của nó.

Đọc thêm  Danh sách được liên kết trong Python – Được giải thích bằng các ví dụ

Chúc mừng mã hóa!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status