Trong khi lập trình trong python, chúng ta phải xử lý các cấu trúc khác nhau như biến, hàm, mô-đun, thư viện, v.v. Trong một số trường hợp, có thể một tên biến được sử dụng tại một địa điểm cũng có thể được sử dụng tại một địa điểm khác mà không có bất kỳ mối liên hệ nào với định nghĩa trước đó. Trong bài viết về phạm vi python này, chúng ta sẽ cố gắng hiểu cách định nghĩa của các biến được xử lý bởi trình thông dịch python
Phạm vi trong Python là gì?
Khi chúng ta định nghĩa một biến, một hàm hoặc một tên lớp trong một chương trình, nó chỉ có thể truy cập được trong một vùng nhất định của chương trình. Vùng nhất định này trong đó một tên, sau khi được xác định, có thể được sử dụng để xác định một đối tượng, một biến hoặc một hàm được gọi là phạm vi. Phạm vi có thể mở rộng từ một khối mã đơn lẻ như một hàm đến toàn bộ môi trường thời gian chạy tùy thuộc vào định nghĩa của tên biến hoặc hàm.
Khái niệm phạm vi liên quan chặt chẽ đến không gian tên và phạm vi được triển khai dưới dạng không gian tên. Chúng ta có thể coi một không gian tên là một từ điển python ánh xạ tên đối tượng tới các đối tượng. Các khóa của từ điển tương ứng với tên và các giá trị tương ứng với các đối tượng trong python
Trong python, có bốn loại định nghĩa phạm vi, cụ thể là phạm vi tích hợp, phạm vi toàn cầu, phạm vi cục bộ và phạm vi kèm theo. Chúng ta sẽ nghiên cứu về tất cả những điều này trong các phần sau
Phạm vi dựng sẵn trong Python là gì?
Phạm vi tích hợp trong python chứa các định nghĩa hàm và đối tượng tích hợp. Nó được triển khai bằng cách sử dụng mô-đun dựng sẵn trong các phiên bản gần đây của python.
Bất cứ khi nào chúng tôi khởi động trình thông dịch python, mô-đun nội trang sẽ tự động được tải vào môi trường thời gian chạy của chúng tôi. Kết quả là, chúng ta có thể truy cập tất cả các chức năng và đối tượng được xác định trong mô-đun trong chương trình của mình mà không cần nhập chúng
Các hàm như print[],abs[],input[],int[], float[], string[],sum[],max[],sorted[] và các hàm tương tự khác không cần nhập trước đó . Chúng ta có thể xem các hàm và định nghĩa đối tượng có sẵn trong phạm vi tích hợp như sau
builtin_names = dir[__builtins__]
for name in builtin_names:
print[name]
đầu ra
ArithmeticError
AssertionError
AttributeError
BaseException
BlockingIOError
BrokenPipeError
BufferError
BytesWarning
ChildProcessError
ConnectionAbortedError
ConnectionError
ConnectionRefusedError
ConnectionResetError
DeprecationWarning
EOFError
Ellipsis
EnvironmentError
Exception
False
FileExistsError
FileNotFoundError
FloatingPointError
FutureWarning
GeneratorExit
IOError
ImportError
ImportWarning
IndentationError
IndexError
InterruptedError
IsADirectoryError
KeyError
KeyboardInterrupt
LookupError
MemoryError
ModuleNotFoundError
NameError
None
NotADirectoryError
NotImplemented
NotImplementedError
OSError
OverflowError
PendingDeprecationWarning
PermissionError
ProcessLookupError
RecursionError
ReferenceError
ResourceWarning
RuntimeError
RuntimeWarning
StopAsyncIteration
StopIteration
SyntaxError
SyntaxWarning
SystemError
SystemExit
TabError
TimeoutError
True
TypeError
UnboundLocalError
UnicodeDecodeError
UnicodeEncodeError
UnicodeError
UnicodeTranslateError
UnicodeWarning
UserWarning
ValueError
Warning
ZeroDivisionError
__build_class__
__debug__
__doc__
__import__
__loader__
__name__
__package__
__spec__
abs
all
any
ascii
bin
bool
breakpoint
bytearray
bytes
callable
chr
classmethod
compile
complex
copyright
credits
delattr
dict
dir
divmod
enumerate
eval
exec
exit
filter
float
format
frozenset
getattr
globals
hasattr
hash
help
hex
id
input
int
isinstance
issubclass
iter
len
license
list
locals
map
max
memoryview
min
next
object
oct
open
ord
pow
print
property
quit
range
repr
reversed
round
set
setattr
slice
sorted
staticmethod
str
sum
super
tuple
type
vars
zip
Phạm vi tích hợp được tạo sau khi trình thông dịch được tải và bị hủy khi đóng trình thông dịch python. Tất cả các tên được xác định trong mô-đun nội trang đều nằm trong phạm vi tích hợp sẵn của chương trình
Phạm vi toàn cầu là gì?
Tập lệnh python mà chúng tôi viết mã của mình được trình thông dịch python gọi là mô-đun __main__. Phạm vi được liên kết với mô-đun __main__ được gọi là phạm vi toàn cầu.
Đối với bất kỳ chương trình python nào, chỉ có thể có một phạm vi toàn cầu. Phạm vi toàn cầu được tạo khi chương trình bắt đầu và bị hủy khi kết thúc chương trình python
Chúng ta có thể hiểu khái niệm về phạm vi toàn cầu từ chương trình sau
myNum1 = 10
myNum2 = 10
def add[num1, num2]:
temp = num1 + num2
def print_sum[]:
print[temp]
return temp
Trong chương trình trên, myNum1 và myNum2 nằm trong phạm vi toàn cục của chương trình. Các đối tượng hiện diện trong phạm vi toàn cầu được xác định bên ngoài bất kỳ khối mã nào
Phạm vi địa phương là gì?
Phạm vi cục bộ trong chương trình python được xác định cho một khối mã, chẳng hạn như chức năng. Mỗi hàm trong chương trình python có phạm vi cục bộ riêng, trong đó tất cả các biến và tên đối tượng của nó được xác định.
Phạm vi cục bộ của hàm được tải khi hàm được gọi bởi bất kỳ hàm nào khác. Khi chức năng kết thúc, phạm vi cục bộ được liên kết với nó cũng bị chấm dứt
Để hiểu khái niệm về phạm vi cục bộ, hãy xem ví dụ sau
myNum1 = 10
myNum2 = 10
def add[num1, num2]:
temp = num1 + num2
def print_sum[]:
print[temp]
return temp
Trong chương trình trên, các biến num1, num2 và temp tồn tại trong phạm vi cục bộ của hàm add[]. Những tên này chỉ tồn tại cho đến khi hàm add[] được thực thi
Phạm vi kèm theo trong Python là gì?
Bất cứ khi nào một chức năng được xác định bên trong bất kỳ chức năng nào khác, phạm vi của chức năng bên trong được xác định bên trong phạm vi của chức năng bên ngoài. Do đó, phạm vi của chức năng bên ngoài được gọi là phạm vi kèm theo của chức năng bên trong.
Chúng ta có thể truy cập tất cả các tên biến trong một hàm đã được xác định trong phạm vi kèm theo của nó. Tuy nhiên, chúng ta không thể truy cập các tên biến bên trong hàm bên ngoài được xác định trong hàm bên trong. Điều này có thể rõ ràng hơn từ ví dụ sau
myNum1 = 10
myNum2 = 10
def add[num1, num2]:
temp = num1 + num2
def print_sum[]:
print[temp]
return temp
Ở đây, hàm print_sum[] tồn tại trong phạm vi cục bộ của hàm add[]. Do đó, các tên biến num1, num2 và temp được xác định trong hàm add[] có thể truy cập được trong phạm vi của hàm print_sum[]
Phần kết luận
Trong bài viết này, chúng ta đã tìm hiểu khái niệm về phạm vi trong python. Chúng tôi cũng đã nghiên cứu các loại phạm vi khác nhau và ví dụ về chúng. Để đọc các khái niệm python khác như hiểu danh sách, hãy theo dõi
Có liên quan
Đào tạo Python được đề xuất
Món ăn. Python 3 cho người mới bắt đầu
Hơn 15 giờ nội dung video với hướng dẫn có hướng dẫn cho người mới bắt đầu. Tìm hiểu cách tạo các ứng dụng trong thế giới thực và nắm vững kiến thức cơ bản