Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?


Một biến chỉ có sẵn từ bên trong khu vực nó được tạo ra. Đây được gọi là phạm vi.scope.


Phạm vi địa phương

Một biến được tạo bên trong một hàm thuộc phạm vi cục bộ của hàm đó và chỉ có thể được sử dụng bên trong hàm đó.

Thí dụ

Một biến được tạo bên trong một hàm có sẵn bên trong chức năng đó:

def myfunc (): & nbsp; x = 300 & nbsp; in (x)
  x = 300
  print(x)

myfunc()

Hãy tự mình thử »

Chức năng bên trong chức năng

Như đã giải thích trong ví dụ trên, biến x không có sẵn bên ngoài hàm, nhưng nó có sẵn cho bất kỳ chức năng nào bên trong hàm:

Thí dụ

Một biến được tạo bên trong một hàm có sẵn bên trong chức năng đó:

def myfunc (): & nbsp; x = 300 & nbsp; in (x)
  x = 300
  def myinnerfunc():
    print(x)
  myinnerfunc()

myfunc()

Hãy tự mình thử »



Chức năng bên trong chức năng

Như đã giải thích trong ví dụ trên, biến x không có sẵn bên ngoài hàm, nhưng nó có sẵn cho bất kỳ chức năng nào bên trong hàm:

Biến cục bộ có thể được truy cập từ một hàm trong hàm:

Thí dụ

Một biến được tạo bên trong một hàm có sẵn bên trong chức năng đó:

def myfunc (): & nbsp; x = 300 & nbsp; in (x)

Hãy tự mình thử »
  print(x)

myfunc()

print(x)

Chức năng bên trong chức năng

Như đã giải thích trong ví dụ trên, biến x không có sẵn bên ngoài hàm, nhưng nó có sẵn cho bất kỳ chức năng nào bên trong hàm:

Biến cục bộ có thể được truy cập từ một hàm trong hàm:

Thí dụ

Một biến được tạo bên trong một hàm có sẵn bên trong chức năng đó:

def myfunc (): & nbsp; x = 300 & nbsp; in (x)

Hãy tự mình thử »
  x = 200
  print(x)

myfunc()

print(x)

Chức năng bên trong chức năng


Như đã giải thích trong ví dụ trên, biến x không có sẵn bên ngoài hàm, nhưng nó có sẵn cho bất kỳ chức năng nào bên trong hàm:

Biến cục bộ có thể được truy cập từ một hàm trong hàm:

def myfunc (): & nbsp; x = 300 & nbsp; def myinnerfunc (): & nbsp; & nbsp; in (x) & nbsp; myinnerfunc ()

Thí dụ

Một biến được tạo bên trong một hàm có sẵn bên trong chức năng đó:

def myfunc (): & nbsp; x = 300 & nbsp; in (x)
  global x
  x = 300

myfunc()

Hãy tự mình thử »

Chức năng bên trong chức năng

Như đã giải thích trong ví dụ trên, biến x không có sẵn bên ngoài hàm, nhưng nó có sẵn cho bất kỳ chức năng nào bên trong hàm:

Thí dụ

Biến cục bộ có thể được truy cập từ một hàm trong hàm:

def myfunc (): & nbsp; x = 300 & nbsp; in (x)

Hãy tự mình thử »
  global x
  x = 200

myfunc()

Hãy tự mình thử »

Hãy tự mình thử »



Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

Giới thiệu về phạm vi trong Python

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 cứ nơi nào trong chương trình. Vùng mã hóa cụ thể nơi có thể nhìn thấy các biến được gọi là phạm vi. Các biến không hiển thị cho toàn bộ mã; Tầm nhìn của họ có thể bị hạn chế. Phạm vi xác minh biến nào có thể được nhìn thấy. Phạm vi xác định tập hợp các quy tắc cho chúng ta biết làm thế nào và nơi một biến có thể được tìm kiếm. Biến được tìm kiếm để lấy 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 nói với trình thông dịch Python về tên của đối tượng và vị trí từ nơi nó đang cố gắng truy cập nó.

Các không gian tên được tìm kiếm độ phân giải phạm vi theo quy tắc LEGB. The LegB là viết tắt của: L: Local, E: Kèm theo, G: Global, B: tích hợp. Trình tự của LegB là quan trọng. Biến được tìm kiếm đầu tiên bằng địa phương, theo sau là kèm theo, sau đó là toàn cầu và cuối cùng được tích hợp.

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

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

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

Hãy cùng 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 địa phương

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

Ví dụ 1:

Code:

num=0
def demo():
    #print(num)
    num=1
    print("The Number is:",num)
demo()

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

Num là cục bộ cho chức năng. Khi chúng tôi sử dụng giá trị biến số trong hàm trước khi khai báo cục bộ, nó sẽ gây ra lỗi.

Tham khảo Ví dụ 2: Ở đây câu lệnh in đầu tiên làm tăng lỗi Python khi chúng tôi đang cố gắng truy cập nó trước khi gán.

Ví dụ #2:

Code:

num=0
def demo():
    print(num)
    num=1
    print("The Number is:",num)
demo()

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

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ín hoặc toàn cầu, thì Python tìm kiế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ín. Python sau đó tìm kiếm giá trị PI trong phạm vi tích hợp và in giá trị. Do đó, tên đã có trong phạm vi tích hợp không nên được sử dụng làm định danh.

Kết luận - & NBSP; Phạm vi trong Python

Ví dụ 1:

Code:

def demo():
    print(Str)
# Global  
Str = "You are clever"
demo()

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

Trong ví dụ sau, 2, chúng tôi đã cố gắng thay đổi giá trị của biến toàn cầu str bên trong hàm; Đó là lý do tại sao nó nêu ra một ngoại lệ. 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ầu. Nếu bạn muốn nói với một thông dịch viên Python rằng bạn muốn sử dụng một biến toàn cầu, thì từ khóa trên toàn cầu được sử dụng. Nếu nó chưa được tuyên bố là toàn cầu, 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 ném một ngoại lệ vì Python giả định rằng chúng tôi muốn gán như một biến cục bộ do gán cho str bên trong demo chức năng ().

Ví dụ #2:

Code:

def demo():  
    print(Str) 
    Str = "You are smart"
    print(Str) 
# Global scope 
Str = "You are Clever" 
demo() 
print(Str) 

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

Khi chúng tôi muốn thay đổi giá trị của biến toàn cầu bên trong từ khóa toàn cầu được sử dụng.

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

Ví dụ #3:

Code:

def demo():  
    print(Str) 
    Str = "You are smart"
    print(Str) 
# Global scope 
Str = "You are Clever" 
demo() 
print(Str) 

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

3. Phạm vi không thuộc địa hoặc bao quanh

Biến phi tiêu điểm là biến được xác định trong hàm lồng nhau. Nó có nghĩa là biến có thể không trong phạm vi địa phương cũng như trong phạm vi toàn cầu. Để tạo một từ khóa không thuộc biến không thuộc địa điểm được sử dụng. & NBSP; Trong mã sau, chúng tôi đã tạo một hàm bên ngoài và có hàm bên trong lồng nhau (). 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 thuộc địa như được định nghĩa trong hàm bên trong (), thì các thay đổi được phản ánh trong hàm bên ngoài.

Ví dụ 1:

Code:

def func_outer():
    x = "local"
    def func_inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)
    func_inner()
    print("outer:", x)
func_outer()

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

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ì hãy bình luận (dòng A).

Ví dụ #2:

Code:

def func_outer():
    a = "local"
    def func_inner():
        #nonlocal a
        a = "nonlocal"
        print("inner:", a)
    func_inner()
    print("outer:", a)
func_outer()

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

def demo():  
    print(Str) 
    Str = "You are smart"
    print(Str) 
# Global scope 
Str = "You are Clever" 
demo() 
print(Str) 

Khi chúng tôi muốn thay đổi giá trị của biến toàn cầu bên trong từ khóa toàn cầu được sử dụng.

Ví dụ 1:

Code:

# 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()

Output:

Hướng dẫn how many scopes are there in python? - Có bao nhiêu phạm vi trong python?

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

Ví dụ #3:

3. Phạm vi không thuộc địa hoặc bao quanh

Biến phi tiêu điểm là biến được xác định trong hàm lồng nhau. Nó có nghĩa là biến có thể không trong phạm vi địa phương cũng như trong phạm vi toàn cầu. Để tạo một từ khóa không thuộc biến không thuộc địa điểm được sử dụng. & NBSP; Trong mã sau, chúng tôi đã tạo một hàm bên ngoài và có hàm bên trong lồng nhau (). 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 thuộc địa như được định nghĩa trong hàm bên trong (), thì các thay đổi được phản ánh trong hàm bên ngoài.

  1. 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ì hãy bình luận (dòng A).
  2. 4. Phạm vi tích hợp
  3. Nếu một biến không được xác định trong phạm vi cục bộ, kín hoặc toàn cầu, thì Python tìm kiế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ín. Python sau đó tìm kiếm giá trị PI trong phạm vi tích hợp và in giá trị. Do đó, tên đã có trong phạm vi tích hợp không nên được sử dụng làm định danh.
  4. Kết luận - & NBSP; Phạm vi trong Python

Có bao nhiêu loại phạm vi trong Python?

Bạn sẽ tìm hiểu về bốn phạm vi khác nhau với sự trợ giúp của các ví dụ: địa phương, bao quanh, toàn cầu và tích hợp.Các phạm vi này cùng nhau tạo thành cơ sở cho quy tắc LEGB được sử dụng bởi trình thông dịch Python khi làm việc với các biến.four different scopes with the help of examples: local, enclosing, global, and built-in. These scopes together form the basis for the LEGB rule used by the Python interpreter when working with variables.

Có bao nhiêu phạm vi toàn cầu trong Python?

Trong Python, có bốn loại phạm vi, như sau: phạm vi toàn cầu.Phạm vi địa phương.Phạm vi bao quanh.

Các phạm vi của các biến trong Python là gì?

Phạm vi của một biến đề cập đến những nơi mà bạn có thể thấy hoặc truy cập một biến.Biến A do đó được cho là cục bộ cho hàm.Nói cách khác, biến A có phạm vi cục bộ.Ngược lại, biến My_var có phạm vi toàn cầu.the places that you can see or access a variable. The variable a is therefore said to be local to the function. Put another way, the variable a has local scope. Conversely the variable my_var has global scope.

Phạm vi trong Python *là gì?

Một biến chỉ có sẵn từ bên trong khu vực nó được tạo ra.Đây được gọi là phạm vi.. This is called scope.