Hướng dẫn can global variables be used anywhere in python? - biến toàn cục có thể được sử dụng ở bất kỳ đâu trong python không?

Biến toàn cầu

Trong Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cầu được gọi là biến toàn cầu. Điều này có nghĩa là một biến toàn cầu có thể được truy cập bên trong hoặc bên ngoài hàm.

Hãy xem một ví dụ về cách một biến toàn cầu được tạo ra trong Python.

Ví dụ 1: Tạo một biến toàn cầu

x = "global"

def foo[]:
    print["x inside:", x]


foo[]
print["x outside:", x]

Đầu ra

x inside: global
x outside: global

Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định

x inside: global
x outside: global
9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi
x inside: global
x outside: global
9 sẽ in giá trị của x.

Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]

Đầu ra

UnboundLocalError: local variable 'x' referenced before assignment

Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định

x inside: global
x outside: global
9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi
x inside: global
x outside: global
9 sẽ in giá trị của x.

Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?

Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong
x inside: global
x outside: global
9.

Để thực hiện công việc này, chúng tôi sử dụng từ khóa

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.

Các biến cục bộ

def foo[]:
    y = "local"


foo[]
print[y]

Đầu ra

NameError: name 'y' is not defined

Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định

x inside: global
x outside: global
9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi
x inside: global
x outside: global
9 sẽ in giá trị của x.

Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?

Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong
x inside: global
x outside: global
9.

Để thực hiện công việc này, chúng tôi sử dụng từ khóa

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.

def foo[]:
    y = "local"
    print[y]

foo[]

Đầu ra

local

Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định

x inside: global
x outside: global
9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi
x inside: global
x outside: global
9 sẽ in giá trị của x.

Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?

Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong

x inside: global
x outside: global
9.

Để thực hiện công việc này, chúng tôi sử dụng từ khóa
x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.

x = "global "

def foo[]:
    global x
    y = "local"
    x = x * 2
    print[x]
    print[y]

foo[]

Đầu ra

global global 
local

Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định

x inside: global
x outside: global
9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi
x inside: global
x outside: global
9 sẽ in giá trị của x.

Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?

Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong
x inside: global
x outside: global
9.

x inside: global
x outside: global
0

Đầu ra

x inside: global
x outside: global
1

Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định

x inside: global
x outside: global
9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi
x inside: global
x outside: global
9 sẽ in giá trị của x.

Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm?

Đầu ra cho thấy một lỗi vì Python coi X là biến cục bộ và X cũng không được xác định bên trong

x inside: global
x outside: global
9.

Để thực hiện công việc này, chúng tôi sử dụng từ khóa
x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.

Các biến cục bộ

Một biến được khai báo bên trong cơ thể của hàm hoặc trong phạm vi cục bộ được gọi là biến cục bộ.

Ví dụ 2: Truy cập biến cục bộ bên ngoài phạm vi

Đầu ra cho thấy một lỗi vì chúng tôi đang cố gắng truy cập một biến cục bộ y trong phạm vi toàn cầu trong khi biến cục bộ chỉ hoạt động bên trong
x inside: global
x outside: global
9 hoặc phạm vi cục bộ.

x inside: global
x outside: global
2

Đầu ra

x inside: global
x outside: global
3

Trong mã trên, chúng tôi đã tạo X như một biến toàn cầu và xác định

x inside: global
x outside: global
9 để in biến x toàn cầu x. Cuối cùng, chúng tôi gọi
x inside: global
x outside: global
9 sẽ in giá trị của x.

Điều gì sẽ xảy ra nếu bạn muốn thay đổi giá trị của x bên trong một hàm? : If we change the value of a nonlocal variable, the changes appear in the local variable.

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à các biến toàn cầu. 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ầu.

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

x inside: global
x outside: global
4

Biến

def foo[]:
    y = "local"


foo[]
print[y]
2 trong mã trên được khai báo bên ngoài hàm:
def foo[]:
    y = "local"


foo[]
print[y]
3.

Sử dụng chức năng

def foo[]:
    y = "local"


foo[]
print[y]
4, chúng tôi vẫn có thể truy cập
def foo[]:
    y = "local"


foo[]
print[y]
2 vì nó được khai báo trong phạm vi toàn cầu.

Chúng ta hãy xem một ví dụ khác cho thấy những gì 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.

x inside: global
x outside: global
5

Trong ví dụ trên, chúng tôi đã khai báo

def foo[]:
    y = "local"


foo[]
print[y]
2 bên trong một hàm 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ì
def foo[]:
    y = "local"


foo[]
print[y]
2 không được xác định trên toàn cầu.

Các biến được xác định 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 biến cục bộ bằng cách sử dụng từ khóa

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2 - mà chúng ta sẽ thảo luận trong phần tiếp theo.

Từ khóa
x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2 được sử dụng cho trong Python là gì?

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ầu.
  • Để làm cho một biến cục bộ có thể truy cập bên ngoài phạm vi địa phương.

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 từ khóa
x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2

Trong phần cuối cùng mà chúng tôi đã khai báo một biến toàn cầu, chúng tôi đã 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ử và thay đổi giá trị của biến toàn cầu và xem điều gì sẽ xảy ra:

x inside: global
x outside: global
6

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

def foo[]:
    y = "local"


foo[]
print[y]
2, 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 sửa đổi
def foo[]:
    y = "local"


foo[]
print[y]
2.

Để khắc phục điều đó, chúng tôi sử dụng biến

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2. Đây là cách:

x inside: global
x outside: global
7

Sử dụng từ khóa

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2 trong mã ở trên, chúng tôi có thể sửa đổi
def foo[]:
    y = "local"


foo[]
print[y]
2 và thêm 2 vào giá trị ban đầu của nó.

Ví dụ #2 - Cách thực hiện một biến cục bộ có thể truy cập bên ngoài phạm vi cục bộ bằng cách sử dụng từ khóa
x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2

Khi chúng tôi 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 tôi có thể khắc phục điều đó bằng cách sử dụng từ khóa

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2:

x inside: global
x outside: global
8

Để có thể truy cập

def foo[]:
    y = "local"


foo[]
print[y]
2 có thể truy cập được 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 từ khóa
x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2:
def foo[]:
    y = "local"
    print[y]

foo[]
0.

Sau đó, chúng tôi đã gán một giá trị cho

def foo[]:
    y = "local"


foo[]
print[y]
2. Sau đó chúng tôi đã gọi chức năng mà chúng tôi đã sử dụng để khai báo nó:
def foo[]:
    y = "local"
    print[y]

foo[]
2

Khi chúng tôi gọi hàm

def foo[]:
    y = "local"


foo[]
print[y]
4, in giá trị của
def foo[]:
    y = "local"


foo[]
print[y]
2 được khai báo trong hàm
def foo[]:
    y = "local"
    print[y]

foo[]
2, chúng tôi đã không gặp lỗi vì
def foo[]:
    y = "local"


foo[]
print[y]
2 có phạm vi toàn cầu.

Bản tóm tắt

Trong bài viết này, chúng tôi đã nói về các biến toàn cầu và địa phương trong Python.

Các ví dụ cho thấy cách khai báo cả biến toàn cầu và địa phương.

Chúng tôi cũng đã nói về từ khóa

x = "global"

def foo[]:
    x = x * 2
    print[x]

foo[]
2 cho phép bạn sửa đổi giá trị của biến toàn cầu hoặc làm cho biến cục bộ có thể truy cập được ngoài phạm vi của nó.

Mã hóa hạnh phúc!

Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Các biến toàn cầu có thể được sử dụng ở bất cứ đâu trong chương trình không?

Khi bạn xác định một biến bên ngoài một hàm, như ở đầu tệp, nó có phạm vi toàn cầu và nó được gọi là biến toàn cầu. Một biến toàn cầu được truy cập từ bất cứ nơi nào trong chương trình.A global variable is accessed from anywhere in the program.

Các biến toàn cầu có thể được sử dụng ở đâu?

Các biến được tạo ra bên ngoài một hàm [như trong tất cả các ví dụ trên] được gọi là các biến toàn cầu.Các biến toàn cầu có thể được sử dụng bởi tất cả mọi người, cả bên trong các chức năng và bên ngoài.everyone, both inside of functions and outside.

Có ổn không khi sử dụng các biến toàn cầu trong Python?

Việc sử dụng biến toàn cầu trong Python được coi là thực hành xấu và nói chung nên tránh.Thay vào đó, người dùng có thể thử và sử dụng tham số để truyền giá trị lên hàm hoặc trả về giá trị để có được nó.. Instead the user can try and use a parameter for passing a value onto a function or return a value to obtain it.

Các biến toàn cầu có thể được sử dụng trong các tệp khác không?

Một biến toàn cầu có thể truy cập được cho tất cả các chức năng trong mọi tệp nguồn nơi nó được khai báo.Để tránh các vấn đề: Khởi tạo - Nếu một biến toàn cầu được khai báo trong nhiều tệp nguồn trong thư viện, nó sẽ được khởi tạo chỉ ở một nơi hoặc bạn sẽ gặp lỗi trình biên dịch.. To avoid problems: Initialization — if a global variable is declared in more than one source file in a library, it should be initialized in only one place or you will get a compiler error.

Bài Viết Liên Quan

Chủ Đề