Trong Python, chúng ta có thể khai báo các biến trong ba phạm vi khác nhau. phạm vi cục bộ, phạm vi toàn cầu và phi cục bộ
Một phạm vi biến xác định khu vực mà chúng ta có thể truy cập vào một biến. Ví dụ,
def add_numbers[]:
sum = 5 + 4
Ở đây, biến sum được tạo bên trong hàm, vì vậy nó chỉ có thể được truy cập bên trong nó [phạm vi cục bộ]. Loại biến này gọi là biến cục bộ
Dựa trên phạm vi, chúng ta có thể phân loại các biến Python thành ba loại
- Biến cục bộ
- Biến toàn cầu
- Biến không cục bộ
Biến cục bộ Python
Khi chúng ta khai báo các biến bên trong hàm thì các biến này sẽ có phạm vi cục bộ [trong hàm]. Chúng tôi không thể truy cập chúng bên ngoài chức năng
Các loại biến này được gọi là biến cục bộ. Ví dụ,
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
đầu ra
Local Hello NameError: name 'message' is not defined
Ở đây, biến thông báo là cục bộ của hàm
Local Hello NameError: name 'message' is not defined7, vì vậy nó chỉ có thể được truy cập trong hàm
Đó là lý do tại sao chúng tôi gặp lỗi khi cố gắng truy cập bên ngoài chức năng
Local Hello NameError: name 'message' is not defined7
Để khắc phục sự cố này, chúng ta có thể biến biến có tên message thành toàn cầu
Biến toàn cục Python
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ục được gọi là biến toàn cục. Điều này có nghĩa là một biến toàn cục 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ục được tạo trong Python
# declare global variable
message = 'Hello'
def greet[]:
# declare local variable
print['Local', message]
greet[]
print['Global', message]
đầu ra
Local Hello Global Hello
Lần này chúng ta có thể truy cập biến thông báo từ bên ngoài hàm
Local Hello NameError: name 'message' is not defined7. Điều này là do chúng tôi đã tạo biến thông báo làm biến toàn cục
# declare global variable
message = 'Hello'
Bây giờ, tin nhắn sẽ có thể truy cập được từ bất kỳ phạm vi [khu vực] nào của chương trình
Biến không cục bộ Python
Trong Python, các biến không cục bộ được sử dụng trong các hàm lồng nhau có phạm vi cục bộ không được xác định. Điều này có nghĩa là biến có thể không nằm trong phạm vi cục bộ cũng như phạm vi toàn cầu
Chúng tôi sử dụng từ khóa
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
1 để tạo các biến không cục bộ. Ví dụ,# outside function
def outer[]:
message = 'local'
# nested function
def inner[]:
# declare nonlocal variable
nonlocal message
message = 'nonlocal'
print["inner:", message]
inner[]
print["outer:", message]
outer[]
đầu ra
________số 8Trong ví dụ trên, có một hàm
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
2 lồng nhau. Chúng tôi đã sử dụng các từ khóa def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
1 để tạo một biến không cục bộ Một biến được khai báo ở đầu chương trình hoặc bên ngoài hàm được coi là biến phạm vi toàn cục
Hãy xem một ví dụ về biến phạm vi toàn cầu
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
1Trong chương trình trên, biến a được khai báo ở đầu chương trình và là biến toàn cục. Nó có nghĩa là biến
# declare global variable
message = 'Hello'
def greet[]:
# declare local variable
print['Local', message]
greet[]
print['Global', message]
0 có thể được sử dụng ở bất kỳ đâu trong chương trìnhGiá trị của một biến toàn cục có thể được thay đổi bên trong một hàm. Ví dụ,
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
2Trong chương trình trên, biến a là biến toàn cục. Giá trị của a là xin chào. Sau đó, biến a được truy cập bên trong một hàm và giá trị thay đổi thành 3
Do đó, giá trị của a thay đổi sau khi thay đổi nó bên trong hàm
Ghi chú. Nên tránh sử dụng biến toàn cục vì giá trị của biến toàn cục có thể thay đổi ở các khu vực khác nhau trong chương trình. Nó có thể giới thiệu các kết quả chưa biết trong chương trình
Trong JavaScript, một biến cũng có thể được sử dụng mà không cần khai báo. Nếu một biến được sử dụng mà không khai báo, biến đó sẽ tự động trở thành biến toàn cục
Ví dụ,
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
3Trong chương trình trên, biến a là biến toàn cục
Nếu biến được khai báo bằng cách sử dụng
# declare global variable
message = 'Hello'
def greet[]:
# declare local variable
print['Local', message]
greet[]
print['Global', message]
1, chương trình sẽ báo lỗiGhi chú. Trong JavaScript, có
# declare global variable
message = 'Hello'
def greet[]:
# declare local variable
print['Local', message]
greet[]
print['Global', message]
2 trong đó một biến không thể được sử dụng mà không khai báo nó. Để tìm hiểu thêm về nghiêm ngặt, hãy truy cập JavaScript StrictPhạm vi cục bộ
Một biến cũng có thể có phạm vi cục bộ, tôi. e nó chỉ có thể được truy cập trong một chức năng
ví dụ 1. Biến phạm vi cục bộ
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
4đầu ra
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
5Trong chương trình trên, biến a là biến toàn cục và biến b là biến cục bộ. Biến b chỉ có thể được truy cập bên trong hàm hello. Do đó, khi chúng tôi cố gắng truy cập biến b bên ngoài hàm, sẽ xảy ra lỗi
hãy để Block Phạm vi
Từ khóa
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
20 có phạm vi khối [biến chỉ có thể được truy cập trong khối ngay lập tức]ví dụ 2. biến phạm vi khối
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
7đầu ra
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
8Trong chương trình trên, biến
- a là biến toàn cục. Nó có thể được truy cập bất cứ nơi nào trong chương trình
- b là một biến cục bộ. Nó chỉ có thể được truy cập bên trong hàm
21def greet[]: # local variable message = 'Hello' print['Local', message] greet[] # try to access message variable # outside greet[] function print[message]
- c là một biến trong phạm vi khối. Nó chỉ có thể được truy cập bên trong khối câu lệnh
22def greet[]: # local variable message = 'Hello' print['Local', message] greet[] # try to access message variable # outside greet[] function print[message]
Do đó, trong chương trình trên, hai
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
23 đầu tiên hoạt động bình thườngTuy nhiên, chúng tôi đang cố gắng truy cập biến c trong phạm vi khối bên ngoài khối trong
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
23 thứ ba. Điều này sẽ ném một lỗiGhi chú. Trong JavaScript,
def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
25 là phạm vi chức năng và def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
20 là phạm vi khối. Nếu bạn cố gắng sử dụng def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
27 bên trong câu lệnh def greet[]:
# local variable
message = 'Hello'
print['Local', message]
greet[]
# try to access message variable
# outside greet[] function
print[message]
22 trong chương trình trên, thì toàn bộ chương trình sẽ hoạt động, vì c được coi là biến cục bộ