Phạm vi cục bộ trong Python là gì

Phạm vi xác định khả năng truy cập của đối tượng python. Để truy cập biến cụ thể trong mã, phạm vi phải được xác định vì nó không thể được truy cập từ bất kỳ đâu trong chương trình. Vùng mã hóa cụ thể nơi các biến có thể nhìn thấy được gọi là phạm vi. Các biến không hiển thị với toàn bộ mã; . Phạm vi xác minh biến nào có thể được 'Đã xem'. Phạm vi xác định tập hợp các quy tắc cho chúng ta biết một biến có thể được tìm kiếm như thế nào và ở đâu. Biến được tìm kiếm để truy xuất một giá trị hoặc để gán giá trị. Không gian tên là nhận dạng duy nhất của biến hoặc phương thức. Không gian tên cho trình thông dịch python biết tên của đối tượng và vị trí mà nó đang cố truy cập nó

Không gian tên được tìm kiếm để giải quyết phạm vi theo quy tắc LEGB. LEGB là viết tắt của. L. Địa phương, E. Kèm theo, G. Toàn cầu, B. Được xây dựng trong. Trình tự LEGB rất quan trọng. Đầu tiên, biến được tìm kiếm trong Cục bộ, tiếp theo là Kèm theo, sau đó là toàn cầu và cuối cùng là tích hợp sẵn

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

Gói phát triển phần mềm tất cả trong một[hơn 600 khóa học, hơn 50 dự án]

Giá bán
Xem các khóa học

Hơn 600 khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 6 [85,882 xếp hạng]

Các loại phạm vi trong Python

Sau đây là 4 loại phạm vi hàng đầu trong python

Hãy nghiên cứu cách khai báo một biến và cách truy cập phạm vi của nó

1. Phạm vi cục bộ

Các biến được định nghĩa trong hàm là phạm vi cục bộ của biến. Các biến này được định nghĩa trong thân hàm. Hãy hiểu khái niệm này với sự giúp đỡ của một ví dụ. Trong ví dụ 1 này, chúng ta đã lấy một biến num. Num = 0 được định nghĩa bên ngoài hàm, vì vậy nó không phải là biến cục bộ. Theo định nghĩa của chúng ta, các biến được khai báo bên trong thân hàm là biến cục bộ. Ở đây num=1 là một biến cục bộ được khai báo và in bên trong hàm demo. Nếu chúng tôi chạy mã này, đầu ra được đưa ra dưới đây

Ví dụ 1

Mã số

num=0
def demo[]:
    #print[num]
    num=1
    print["The Number is:",num]
demo[]

đầu ra

Num là cục bộ của hàm. Khi chúng ta sử dụng giá trị biến num trong hàm trước khi khai báo cục bộ, nó sẽ phát sinh lỗi

Tham khảo ví dụ 2. Ở đây, câu lệnh in đầu tiên phát sinh lỗi python khi chúng tôi đang cố truy cập nó trước khi chuyển nhượng

Ví dụ #2

Mã số

num=0
def demo[]:
    print[num]
    num=1
    print["The Number is:",num]
demo[]

đầu ra

2. Phạm vi toàn cầu

Biến có thể được đọc từ bất kỳ đâu trong chương trình được gọi là phạm vi toàn cầu. Các biến này có thể được truy cập bên trong và bên ngoài chức năng. Khi chúng tôi muốn sử dụng cùng một biến trong phần còn lại của chương trình, chúng tôi khai báo nó là biến toàn cục

Trong Ví dụ 1 sau đây, chúng ta đã khai báo một biến Str, nằm ngoài hàm. Hàm demo được gọi và nó in ra giá trị của biến Str. Để sử dụng biến toàn cục bên trong một hàm, không cần sử dụng từ khóa toàn cầu

Ví dụ 1

Mã số

def demo[]:
    print[Str]
# Global  
Str = "You are clever"
demo[]

đầu ra

Trong ví dụ sau, 2, chúng tôi đã cố gắng thay đổi giá trị của biến toàn cục Str bên trong hàm; . Nếu chúng ta sửa đổi hoặc gán một giá trị mới cho biến bên trong hàm, thì chúng ta phải viết toàn cục. Nếu bạn muốn nói với trình thông dịch python rằng bạn muốn sử dụng biến toàn cục, thì từ khóa “global” được sử dụng. Nếu nó chưa được khai báo là toàn cục, thì python coi biến đó là cục bộ nếu nó được tạo hoặc sửa đổi bên trong hàm. Trong dòng đầu tiên này đưa ra một ngoại lệ vì python giả định rằng chúng ta muốn gán như một biến cục bộ do gán cho str bên trong hàm demo[]

Ví dụ #2

Mã số

def demo[]:  
    print[Str] 
    Str = "You are smart"
    print[Str] 
# Global scope 
Str = "You are Clever" 
demo[] 
print[Str] 

đầu ra

Khi chúng ta muốn thay đổi giá trị của biến toàn cục bên trong hàm thì từ khóa global được sử dụng

Ví dụ 3 sau đây đã giải quyết vấn đề gặp phải ở trên

Ví dụ #3

Mã số

def demo[]:  
    print[Str] 
    Str = "You are smart"
    print[Str] 
# Global scope 
Str = "You are Clever" 
demo[] 
print[Str] 

đầu ra

3. Phạm vi không cục bộ hoặc kèm theo

Biến không cục bộ là biến được xác định trong hàm lồng nhau. Nó có nghĩa là biến không thể ở trong phạm vi cục bộ cũng như trong phạm vi toàn cầu. Để tạo một biến không cục bộ từ khóa nonlocal được sử dụng. Trong đoạn mã sau, chúng ta đã tạo một hàm bên ngoài và có một hàm lồng bên trong[]. Trong phạm vi của hàm bên ngoài [] hàm bên trong [] được xác định. Nếu chúng ta thay đổi biến không cục bộ như được xác định trong hàm bên trong[], thì các thay đổi sẽ được phản ánh trong hàm bên ngoài

Ví dụ 1

Mã số

def func_outer[]:
    x = "local"
    def func_inner[]:
        nonlocal x
        x = "nonlocal"
        print["inner:", x]
    func_inner[]
    print["outer:", x]
func_outer[]

đầu ra

Nếu chúng ta chỉ muốn sử dụng giá trị của hàm bên ngoài và không muốn thực hiện bất kỳ thay đổi nào, thì nhận xét dòng [nonlocal a]

Ví dụ #2

Mã số

def func_outer[]:
    a = "local"
    def func_inner[]:
        #nonlocal a
        a = "nonlocal"
        print["inner:", a]
    func_inner[]
    print["outer:", a]
func_outer[]

đầu ra

4. Phạm vi tích hợp

Nếu một Biến không được xác định trong phạm vi cục bộ, Kèm theo hoặc toàn cầu, thì python sẽ tìm nó trong phạm vi tích hợp. Trong ví dụ sau, 1 từ mô-đun toán học pi được nhập và giá trị của pi không được xác định trong toàn cầu, cục bộ và kèm theo. Python sau đó tìm kiếm giá trị pi trong phạm vi tích hợp sẵn và in giá trị. Do đó, không nên sử dụng tên đã có trong phạm vi tích hợp làm định danh

Ví dụ 1

Mã số

# Built-in Scope 
from math import pi 
# pi = 'Not defined in global pi'
def func_outer[]: 
    # pi = 'Not defined in outer pi' 
    def inner[]: 
        # pi = 'not defined in inner pi' 
        print[pi] 
    inner[] 
func_outer[]

đầu ra

Kết luận – Phạm vi trong Python

Trong bài viết này, chúng ta đã tìm hiểu về phạm vi biến của python. Chúng tôi đã học bốn loại phạm vi – phạm vi toàn cầu, phạm vi cục bộ, phạm vi kèm theo và phạm vi tích hợp. Chúng tôi cũng đã học khi sử dụng các từ khóa toàn cầu và không cục bộ. Tôi hy vọng bạn hiểu khái niệm này

Bài viết được đề xuất

Đây là hướng dẫn về Phạm vi trong Python. Ở đây chúng ta thảo luận về các loại Phạm vi trong Python và các ví dụ của nó cùng với việc triển khai và xuất mã. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –

Phạm vi cục bộ và toàn cầu trong Python là gì?

Nếu bạn thao tác với cùng một tên biến bên trong và bên ngoài một hàm, Python sẽ coi chúng là hai biến riêng biệt, một biến có sẵn trong phạm vi toàn cầu [bên ngoài hàm] và . ]:

Phạm vi địa phương là gì?

Phạm vi cục bộ là đặc điểm của các biến khiến chúng trở thành cục bộ [i. e. , tên biến chỉ được liên kết với giá trị của nó trong một phạm vi không phải là phạm vi toàn cầu].

Phạm vi địa phương của một chức năng là gì?

Biến cục bộ có Phạm vi Chức năng. Chỉ có thể truy cập chúng từ bên trong hàm . Vì các biến cục bộ chỉ được nhận dạng bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các hàm khác nhau. Biến cục bộ được tạo khi chức năng bắt đầu và bị xóa khi chức năng hoàn thành.

Phạm vi cục bộ và phạm vi toàn cầu là gì?

Các biến được định nghĩa bên ngoài hàm Chúng được gọi là biến toàn cục và phạm vi của chúng là toàn cục. Các biến được định nghĩa bên trong hàm là biến cục bộ .

Chủ Đề