Biến toàn cục là những biến không được xác định bên trong bất kỳ hàm nào và có phạm vi toàn cục trong khi biến cục bộ là những biến được định nghĩa bên trong hàm và phạm vi của nó chỉ giới hạn ở hàm đó. Nói cách khác, chúng ta có thể nói rằng các biến cục bộ chỉ có thể truy cập được bên trong hàm mà nó được khởi tạo trong khi các biến toàn cục có thể truy cập được trong toàn bộ chương trình và bên trong mọi hàm. Biến cục bộ là những biến được khởi tạo bên trong một hàm và chỉ thuộc về hàm cụ thể đó. Nó không thể được truy cập ở bất cứ đâu bên ngoài chức năng. Hãy xem cách tạo một biến cục bộ
Thí dụ. Tạo biến cục bộ
Python3
def
f[]:
NameError: name 's' is not defined0
NameError: name 's' is not defined1
NameError: name 's' is not defined0
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined5
NameError: name 's' is not defined0
NameError: name 's' is not defined7
NameError: name 's' is not defined8
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks1
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
Đầu ra
I love Geeksforgeeks
Nếu chúng ta cố gắng sử dụng biến cục bộ này bên ngoài hàm thì hãy xem điều gì sẽ xảy ra
Thí dụ
Python3
def
f[]:
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks5
NameError: name 's' is not defined0
NameError: name 's' is not defined1
NameError: name 's' is not defined0
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined5
NameError: name 's' is not defined0
NameError: name 's' is not defined7
Me too. I love Geeksforgeeks4
Me too. I love Geeksforgeeks5
Me too. I love Geeksforgeeks6
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks1
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
NameError: name 's' is not defined7
NameError: name 's' is not defined8
đầu ra
NameError: name 's' is not defined
Biến toàn cầu
Đây là những cái được định nghĩa bên ngoài bất kỳ chức năng nào và có thể truy cập được trong suốt chương trình, tôi. e. , bên trong và bên ngoài mọi chức năng. Hãy xem cách tạo biến toàn cục
Thí dụ. Định nghĩa và truy cập các biến toàn cục
Python3
UnboundLocalError: local variable 's' referenced before assignment2
def
f[]:
NameError: name 's' is not defined0
NameError: name 's' is not defined7
Me too. I love Geeksforgeeks4
UnboundLocalError: local variable 's' referenced before assignment8
Me too. I love Geeksforgeeks6
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section1
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined5
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
NameError: name 's' is not defined7
Me too. I love Geeksforgeeks4
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section8
Me too. I love Geeksforgeeks6
Đầu ra
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks
Biến s được định nghĩa là biến toàn cục và được sử dụng cả bên trong hàm cũng như bên ngoài hàm
Ghi chú. Vì không có biến cục bộ nên giá trị từ biến toàn cầu sẽ được sử dụng nhưng hãy đảm bảo rằng cả biến cục bộ và biến toàn cục phải có cùng tên
Bây giờ, điều gì sẽ xảy ra nếu có một biến cùng tên được khởi tạo bên trong một hàm cũng như trên toàn cầu. Bây giờ câu hỏi đặt ra, liệu biến cục bộ có ảnh hưởng gì đến biến toàn cục hay ngược lại, và điều gì sẽ xảy ra nếu chúng ta thay đổi giá trị của một biến bên trong hàm f[]? .
Python3
global : 1 Inside f[] : 1 global : 1 Inside g[] : 2 global : 1 Inside h[] : 3 global : 30
global : 1 Inside f[] : 1 global : 1 Inside g[] : 2 global : 1 Inside h[] : 3 global : 31
def
f[]:
NameError: name 's' is not defined0
NameError: name 's' is not defined3
NameError: name 's' is not defined4
global : 1 Inside f[] : 1 global : 1 Inside g[] : 2 global : 1 Inside h[] : 3 global : 39
NameError: name 's' is not defined0
NameError: name 's' is not defined7
NameError: name 's' is not defined8
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section1
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined5
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
NameError: name 's' is not defined7
NameError: name 's' is not defined8
Đầu ra
Me too. I love Geeksforgeeks
Nếu một biến có cùng tên cũng được xác định bên trong phạm vi của hàm thì nó sẽ chỉ in giá trị được cung cấp bên trong hàm chứ không phải giá trị toàn cầu.
Câu hỏi đặt ra là, nếu chúng ta cố gắng thay đổi giá trị của một biến toàn cục bên trong hàm thì sao?. Hãy xem nó bằng ví dụ dưới đây
Thí dụ.
Python3
UnboundLocalError: local variable 's' referenced before assignment2
def
f[]:
NameError: name 's' is not defined0
NameError: name 's' is not defined3
f[]:
7NameError: name 's' is not defined4
f[]:
9NameError: name 's' is not defined0
NameError: name 's' is not defined7
Me too. I love Geeksforgeeks4
UnboundLocalError: local variable 's' referenced before assignment8
Me too. I love Geeksforgeeks6
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section1
NameError: name 's' is not defined3
NameError: name 's' is not defined4
NameError: name 's' is not defined5
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks2
đầu ra
UnboundLocalError: local variable 's' referenced before assignment
Để làm cho chương trình trên hoạt động, chúng ta cần sử dụng từ khóa “global”. Hãy xem từ khóa toàn cầu này là gì
từ khóa toàn cầu
Chúng ta chỉ cần sử dụng từ khóa global 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ục. toàn cầu không cần thiết để in và truy cập. Python “giả sử” rằng chúng ta muốn có một biến cục bộ do việc gán cho s bên trong hàm f[], vì vậy câu lệnh đầu tiên đưa ra 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 đều là biến cục bộ nếu nó chưa được khai báo là biến toàn cục. Để nói với Python rằng chúng ta muốn sử dụng biến toàn cục, chúng ta phải sử dụng từ khóa “global”, như có thể thấy trong ví dụ sau.