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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 để in biến x toàn cầu X. Cuối cùng, chúng tôi gọi x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 để in biến x toàn cầu X. Cuối cùng, chúng tôi gọi x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1.
x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
Để 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[]
4. 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 để in biến x toàn cầu X. Cuối cùng, chúng tôi gọi x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1.
x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
Để 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[]
4. 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 để in biến x toàn cầu X. Cuối cùng, chúng tôi gọi x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1.Để 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[]
4. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.
x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 để in biến x toàn cầu X. Cuối cùng, chúng tôi gọi x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1.
x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
x inside: global x outside: global0
Đầu ra
x inside: global x outside: global1
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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 để in biến x toàn cầu X. Cuối cùng, chúng tôi gọi x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1.Để 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[]
4. Truy cập từ khóa toàn cầu Python để tìm hiểu thêm.
x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 hoặc phạm vi cục bộ.
x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
x inside: global x outside: global2
Đầu ra
x inside: global x outside: global3
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 = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 để in biến x toàn cầu X. Cuối cùng, chúng tôi gọi x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
1 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.
Biến cục bộ trong Python với ví dụ là gì? are those which are not defined inside any function and have a global scope whereas local variables are those which are defined inside a function and its scope is limited to that function only. In other words, we can say that local variables are accessible only inside the function in which it was initialized whereas the global variables are accessible throughout the program and inside every function. Local variables are those which are initialized inside a function and belong only to that particular function. It cannot be accessed anywhere outside the function. Let’s see how to create a local variable.
Các biến cục bộ trong Python là những biến được khai báo bên trong hàm. Ngoài ra, họ được cho là được xác định trong một phạm vi địa phương. Người dùng chỉ có thể truy cập một biến cục bộ bên trong hàm nhưng không bao giờ nằm ngoài nó.Creating local variables
Python3
def foo[]:
y = "local"
foo[]
print[y]
4 def foo[]:
y = "local"
foo[]
print[y]
5Biến địa phương và toàn cầu trong Python là gì?
def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
NameError: name 'y' is not defined2
NameError: name 'y' is not defined3
Đầu ra
x inside: global x outside: global4
Bây giờ không có sự mơ hồ. & Nbsp;
Example:
Python3
def foo[]:
y = "local"
foo[]
print[y]
4 def foo[]:
y = "local"
foo[]
print[y]
5Biến địa phương và toàn cầu trong Python là gì?
def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2def foo[]:
y = "local"
print[y]
foo[]
3def foo[]:
y = "local"
print[y]
foo[]
4NameError: name 'y' is not defined3
NameError: name 'y' is not defined1
NameError: name 'y' is not defined2
Output:
x inside: global x outside: global5
Các biến toàn cầu là các biến được khai báo bên ngoài một hàm. Biến số là các biến được khai báo bên trong một hàm. Mặc dù các biến toàn cầu không thể được thay đổi trực tiếp trong một hàm, bạn có thể sử dụng từ khóa toàn cầu để tạo hàm sẽ thay đổi giá trị của biến toàn cầu.
Các biến cục bộ là gì?
Một biến cục bộ là một loại biến có thể được sử dụng trong đó phạm vi và mức độ của biến nằm trong phương thức hoặc khối câu lệnh trong đó nó được khai báo. Nó được sử dụng như một biến lặp trong câu lệnh foreach, biến ngoại lệ trong mệnh đề bắt và biến tài nguyên cụ thể trong câu lệnh sử dụng.Defining and accessing global variables
Python3
def foo[]:
y = "local"
foo[]
print[y]
4 def foo[]:
y = "local"
foo[]
print[y]
5def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2local3
def foo[]:
y = "local"
print[y]
foo[]
4Ví dụ về biến địa phương là gì?
NameError: name 'y' is not defined3
NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x = "global "
def foo[]:
global x
y = "local"
x = x * 2
print[x]
print[y]
foo[]
1def foo[]:
y = "local"
print[y]
foo[]
4Đầu ra
x inside: global x outside: global6
Bây giờ không có sự mơ hồ. & Nbsp;
Ví dụ 2: Sử dụng các biến toàn cầu và địa phương As there are no locals, the value from the globals will be used but make sure both the local and the global variables should have same name.
x inside: global x outside: global40
def foo[]:
y = "local"
foo[]
print[y]
8 x inside: global x outside: global42
Python3
def foo[]:
y = "local"
foo[]
print[y]
4 def foo[]:
y = "local"
foo[]
print[y]
5def foo[]:
y = "local"
foo[]
print[y]
6def foo[]:
y = "local"
foo[]
print[y]
7def foo[]:
y = "local"
foo[]
print[y]
8 x = "global "
def foo[]:
global x
y = "local"
x = x * 2
print[x]
print[y]
foo[]
8def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
NameError: name 'y' is not defined2
def foo[]:
y = "local"
foo[]
print[y]
7def foo[]:
y = "local"
foo[]
print[y]
8 def foo[]:
y = "local"
foo[]
print[y]
9NameError: name 'y' is not defined3
NameError: name 'y' is not defined1
NameError: name 'y' is not defined2
Đầu ra
x inside: global x outside: global7
Nếu một biến có cùng tên được xác định bên trong phạm vi hàm thì nó sẽ chỉ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP;
Câu hỏi là, nếu chúng ta cố gắng thay đổi giá trị của biến toàn cầu bên trong hàm. Hãy cùng xem nó bằng cách sử dụng ví dụ dưới đây.
Example:
Python3
def foo[]:
y = "local"
foo[]
print[y]
4 def foo[]:
y = "local"
foo[]
print[y]
5def foo[]:
y = "local"
foo[]
print[y]
6def foo[]:
y = "local"
foo[]
print[y]
7x inside: global x outside: global022
x inside: global x outside: global04
def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2local3
def foo[]:
y = "local"
print[y]
foo[]
4def foo[]:
y = "local"
foo[]
print[y]
7def foo[]:
y = "local"
foo[]
print[y]
8 def foo[]:
y = "local"
foo[]
print[y]
9NameError: name 'y' is not defined3
Output:
x inside: global x outside: global8
Đầu ra
Nếu một biến có cùng tên được xác định bên trong phạm vi hàm thì nó sẽ chỉ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP;
Câu hỏi là, nếu chúng ta cố gắng thay đổi giá trị của biến toàn cầu bên trong hàm. Hãy cùng xem nó bằng cách sử dụng ví dụ dưới đây.global keyword in a function if we want to do assignments or change the global variable. global is not needed for printing and accessing. Python “assumes” that we want a local variable due to the assignment to s inside of f[], so the first statement throws the error message. Any variable which is changed or created inside of a function is local if it hasn’t been declared as a global variable. To tell Python, that we want to use the global variable, we have to use the keyword “global”, as can be seen in the following example:
6def foo[]:
y = "local"
foo[]
print[y]
7def foo[]:
y = "local"
foo[]
print[y]
x inside: global
x outside: global
022 x inside: global
x outside: global
04Using global keyword
Python3
def foo[]:
y = "local"
foo[]
print[y]
4 def foo[]:
y = "local"
foo[]
print[y]
5Để làm cho chương trình trên hoạt động, chúng tôi cần sử dụng từ khóa toàn cầu trên toàn cầu. Hãy để xem từ khóa toàn cầu này là gì.
Từ khóa toàn cầu:
def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
NameError: name 'y' is not defined2
Chúng ta chỉ cần sử dụng từ khóa toàn cầu trong một hàm nếu chúng ta muốn thực hiện các bài tập hoặc thay đổi biến toàn cầu. Toàn cầu là không cần thiết để in và truy cập. Python, giả sử rằng chúng tôi muốn một biến cục bộ do sự gán cho s bên trong f [], do đó câu lệnh đầu tiên ném thông báo lỗi. Bất kỳ biến nào được thay đổi hoặc tạo bên trong hàm là cục bộ nếu nó không được khai báo là một biến toàn cầu. Để nói với Python, rằng chúng tôi muốn sử dụng biến toàn cầu, chúng tôi phải sử dụng từ khóa trên toàn cầu, như có thể thấy trong ví dụ sau: & NBSP;
def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
x inside: global x outside: global33
Ví dụ 1: Sử dụng từ khóa toàn cầu
NameError: name 'y' is not defined3
NameError: name 'y' is not defined1
NameError: name 'y' is not defined2
Đầu ra
x inside: global x outside: global9
Nếu một biến có cùng tên được xác định bên trong phạm vi hàm thì nó sẽ chỉ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP;
Câu hỏi là, nếu chúng ta cố gắng thay đổi giá trị của biến toàn cầu bên trong hàm. Hãy cùng xem nó bằng cách sử dụng ví dụ dưới đây.Using global and local variables
Python3
def foo[]:
y = "local"
foo[]
print[y]
6def foo[]:
y = "local"
foo[]
print[y]
7x inside: global x outside: global022
x inside: global x outside: global04
def foo[]:
y = "local"
foo[]
print[y]
4 def foo[]:
y = "local"
foo[]
print[y]
5def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x inside: global x outside: global48
x inside: global x outside: global49
Để làm cho chương trình trên hoạt động, chúng tôi cần sử dụng từ khóa toàn cầu trên toàn cầu. Hãy để xem từ khóa toàn cầu này là gì.
Từ khóa toàn cầu:
def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x inside: global x outside: global59
x inside: global x outside: global49
Chúng ta chỉ cần sử dụng từ khóa toàn cầu trong một hàm nếu chúng ta muốn thực hiện các bài tập hoặc thay đổi biến toàn cầu. Toàn cầu là không cần thiết để in và truy cập. Python, giả sử rằng chúng tôi muốn một biến cục bộ do sự gán cho s bên trong f [], do đó câu lệnh đầu tiên ném thông báo lỗi. Bất kỳ biến nào được thay đổi hoặc tạo bên trong hàm là cục bộ nếu nó không được khai báo là một biến toàn cầu. Để nói với Python, rằng chúng tôi muốn sử dụng biến toàn cầu, chúng tôi phải sử dụng từ khóa trên toàn cầu, như có thể thấy trong ví dụ sau: & NBSP;
Ví dụ 1: Sử dụng từ khóa toàn cầu
def foo[]:
y = "local"
foo[]
print[y]
6x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
4 x inside: global x outside: global18
def foo[]:
y = "local"
foo[]
print[y]
6NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x inside: global x outside: global73
x inside: global x outside: global49
NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x inside: global x outside: global77
x inside: global x outside: global49
NameError: name 'y' is not defined3
NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x inside: global x outside: global77
x inside: global x outside: global49
x inside: global x outside: global84
NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x inside: global x outside: global77
x inside: global x outside: global49
x inside: global x outside: global89
NameError: name 'y' is not defined1
def foo[]:
y = "local"
print[y]
foo[]
2x inside: global x outside: global77
x inside: global x outside: global49
Đầu ra
x = "global"
def foo[]:
x = x * 2
print[x]
foo[]
0Nếu một biến có cùng tên được xác định bên trong phạm vi hàm thì nó sẽ chỉ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP;Shwetanshu Rohatgi. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or if you want to share more information about the topic discussed above.