Hướng dẫn what is a local variable in python? - biến cục bộ trong python là gì?

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.

Để 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.

Để 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[]:
    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 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 = "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.

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 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 = "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]
5

Biến địa phương và toàn cầu trong Python là gì?

def foo[]:
    y = "local"


foo[]
print[y]
6
NameError: name 'y' is not defined
1
NameError: name 'y' is not defined
2

NameError: name 'y' is not defined
3

Đầu ra

x inside: global
x outside: global
4

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]
5

Biến địa phương và toàn cầu trong Python là gì?

def foo[]:
    y = "local"


foo[]
print[y]
6
NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

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

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

foo[]
4

NameError: name 'y' is not defined
3

NameError: name 'y' is not defined
1
NameError: name 'y' is not defined
2

Output:

x inside: global
x outside: global
5

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]
5

def foo[]:
    y = "local"


foo[]
print[y]
6
NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

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

foo[]
4

Ví dụ về biến địa phương là gì?

NameError: name 'y' is not defined
3

NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x = "global "

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

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

foo[]
4

Đầu ra

x inside: global
x outside: global
6

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: global
40
def foo[]:
    y = "local"


foo[]
print[y]
8
x inside: global
x outside: global
42

Python3

def foo[]:
    y = "local"


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


foo[]
print[y]
5

def foo[]:
    y = "local"


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


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


foo[]
print[y]
8
x = "global "

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

foo[]
8

def foo[]:
    y = "local"


foo[]
print[y]
6
NameError: name 'y' is not defined
1
NameError: name 'y' is not defined
2

def foo[]:
    y = "local"


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


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


foo[]
print[y]
9

NameError: name 'y' is not defined
3

NameError: name 'y' is not defined
1
NameError: name 'y' is not defined
2

Đầu ra

x inside: global
x outside: global
7

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]
5

def foo[]:
    y = "local"


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


foo[]
print[y]
7
x inside: global
x outside: global
022
x inside: global
x outside: global
04

def foo[]:
    y = "local"


foo[]
print[y]
6
NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

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

foo[]
4

def foo[]:
    y = "local"


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


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


foo[]
print[y]
9

NameError: name 'y' is not defined
3

Output:

x inside: global
x outside: global
8

Đầ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: 

def foo[]:
    y = "local"


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


foo[]
print[y]
7
x inside: global
x outside: global
022
x inside: global
x outside: global
04
Using 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]
6
NameError: name 'y' is not defined
1
NameError: name 'y' is not defined
2

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]
6
NameError: name 'y' is not defined
1
x inside: global
x outside: global
33

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

NameError: name 'y' is not defined
3

NameError: name 'y' is not defined
1
NameError: name 'y' is not defined
2

Đầu ra

x inside: global
x outside: global
9

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]
6
def foo[]:
    y = "local"


foo[]
print[y]
7
x inside: global
x outside: global
022
x inside: global
x outside: global
04

def foo[]:
    y = "local"


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


foo[]
print[y]
5

def foo[]:
    y = "local"


foo[]
print[y]
6
NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x inside: global
x outside: global
48
x inside: global
x outside: global
49

Để 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]
6
NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x inside: global
x outside: global
59
x inside: global
x outside: global
49

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]
6
x = "global"

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

foo[]
4
x inside: global
x outside: global
18

def foo[]:
    y = "local"


foo[]
print[y]
6
NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x inside: global
x outside: global
73
x inside: global
x outside: global
49

NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x inside: global
x outside: global
77
x inside: global
x outside: global
49

NameError: name 'y' is not defined
3

NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x inside: global
x outside: global
77
x inside: global
x outside: global
49

x inside: global
x outside: global
84

NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x inside: global
x outside: global
77
x inside: global
x outside: global
49

x inside: global
x outside: global
89

NameError: name 'y' is not defined
1
def foo[]:
    y = "local"
    print[y]

foo[]
2
x inside: global
x outside: global
77
x inside: global
x outside: global
49

Đầu ra

x = "global"

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

foo[]
0

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;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.


Biến cục bộ trong Python với ví dụ là gì?

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ó.those variables that are declared inside the function. Alternatively, they are said to defined within a local scope. A user can only access a local variable inside the function but never outside it.

Biến địa phương và toàn cầu trong Python là gì?

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. Local variables are variables declared inside a function. While global variables cannot be directly changed in a function, you can use the global keyword to create a function that will change the value of a global variable.

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.a type of variable that can be used where the scope and extent of the variable is within the method or statement block in which it is declared. It is used as an iteration variable in the foreach statement, exception variable in the specific-catch clause and resource variable in the using statement.

Ví dụ về biến địa phương là gì?

Ví dụ: for [int i = 0; ifor[int i=0;i

Bài Viết Liên Quan

Chủ Đề