Phạm vi của một biến trong python là gì?

\[\newcommand{L}[1]{\. #1 \. }\newcommand{VL}[1]{\L{ \vec{#1} }}\newcommand{R}[1]{\operatorname{Re}\,[#1]}\newcommand{I}[1]

Phạm vi toàn cầu và cục bộ của các biến Python

Thấy. các biến và phạm vi trong sách giáo khoa Python trực tuyến

Phạm vi của một biến đề cập đến những nơi mà bạn có thể nhìn thấy hoặc truy cập vào một biến

Nếu bạn xác định một biến ở cấp cao nhất của tập lệnh hoặc mô-đun hoặc sổ ghi chép, thì đây là biến toàn cục

>>> my_var = 3

Biến là toàn cầu vì bất kỳ hàm hoặc lớp Python nào được xác định trong mô-đun hoặc sổ ghi chép này đều có thể truy cập vào biến này. Ví dụ

>>> def my_first_func[]:
..     # my_func can 'see' the global variable
..     print['I see "my_var" = ', my_var, ' from "my_first_func"']

>>> my_first_func[]
I see "my_var" =  3  from "my_first_func"

Các biến được định nghĩa bên trong một hàm hoặc lớp, không phải là toàn cục. Chỉ có chức năng hoặc lớp có thể nhìn thấy biến

>>> def my_second_func[]:
..     a = 10
..     print['I see "a" = ', a, 'from "my_second_func"']

>>> my_second_func[]
I see "a" =  10 from "my_second_func"

Nhưng ở đây, ở cấp độ cao nhất [toàn cầu] của sổ ghi chép, chúng ta không thể thấy biến đó

>>> a
Traceback [most recent call last]:
  ...
NameError: name 'a' is not defined

Do đó, biến a được cho là cục bộ của 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

Tất cả các biến trong một chương trình có thể không truy cập được ở tất cả các vị trí trong chương trình đó. Điều này phụ thuộc vào nơi bạn đã khai báo một biến

Phạm vi của biến xác định phần chương trình mà bạn có thể truy cập vào một mã định danh cụ thể. Có hai phạm vi biến cơ bản trong Python -

  • biến toàn cục
  • Biến cục bộ

Toàn cầu so với. Biến cục bộ

Các biến được xác định bên trong thân hàm có phạm vi cục bộ và các biến được xác định bên ngoài có phạm vi toàn cục

Điều này có nghĩa là các biến cục bộ chỉ có thể được truy cập bên trong hàm mà chúng được khai báo, trong khi các biến toàn cục có thể được truy cập trong toàn bộ thân chương trình bởi tất cả các hàm. Khi bạn gọi một hàm, các biến được khai báo bên trong nó sẽ được đưa vào phạm vi

Hôm nay, chúng ta sẽ thảo luận về Phạm vi biến Python. Sau đây, chúng ta sẽ tìm hiểu các loại phạm vi biến trong Python, Python Global Keyword và Python Non-local Keywords

Vì vậy, hãy bắt đầu học tập của chúng tôi

Phạm vi biến Python là gì?

Phạm vi của một biến trong python là một phần của mã hiển thị. Thực ra để chỉ nó thì bạn không cần dùng thêm tiền tố nào cả

Hãy lấy một ví dụ, nhưng trước khi sửa lại cú pháp python

>>> b=8
>>> def func[]:
                a=7
                print[a]
                print[b]              
>>> func[]

đầu ra

7
8

>>> a

đầu ra

Traceback [cuộc gọi gần đây nhất cuối cùng]
File “”, line 1, in
a
TênLỗi. tên 'a' không được xác định

Ngoài ra, khoảng thời gian mà một biến còn sống được gọi là 'thời gian tồn tại' của nó

Các loại phạm vi biến Python

Có 4 loại Phạm vi biến trong Python, hãy thảo luận từng loại một

Phạm vi biến Python – Các loại

1. Phạm vi cục bộ trong Python

Trong đoạn mã trên, chúng tôi xác định một biến 'a' trong hàm 'func'. Vì vậy, 'a' là cục bộ của 'func'. Do đó, chúng ta có thể đọc/ghi nó trong func, nhưng không thể ở bên ngoài nó

Khi chúng tôi cố gắng làm như vậy, nó sẽ gây ra lỗi NameError. Nhìn vào mã này

________số 8_______

đầu ra

Traceback [cuộc gọi gần đây nhất cuối cùng]
File “”, line 1, in
chức năng[]
File “”, line 2, in func
in[a]
UnboundLocalError. biến cục bộ 'a' được tham chiếu trước khi gán

Ở đây, chúng tôi có thể đã truy cập Phạm vi toàn cầu 'a' bên trong 'func', nhưng vì chúng tôi cũng xác định 'a' cục bộ trong đó, nên nó không còn truy cập phạm vi toàn cầu 'a'

Sau đó, câu lệnh in đầu tiên bên trong 'func' sẽ gây ra lỗi trong Python, vì chúng tôi đang cố truy cập phạm vi cục bộ 'a' trước khi gán nó

Tuy nhiên, việc cố gắng thao túng các giá trị toàn cầu từ bên trong phạm vi cục bộ là một cách làm không tốt. Cố gắng chuyển nó thành tham số cho hàm

>>> def func[a=0]:
                a+=1
                print[a]             
>>> func[]

đầu ra

1

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

Chúng tôi cũng khai báo một biến 'b' bên ngoài bất kỳ phạm vi Biến python nào khác, điều này làm cho nó trở thành phạm vi toàn cầu

Do đó, chúng ta có thể đọc nó ở bất cứ đâu trong chương trình. Ở phần sau của bài viết này, chúng ta sẽ xem cách viết nó bên trong func

3. Phạm vi kèm theo trong Python

Hãy lấy một ví dụ khác

>>> def red[]:
                a=1
                def blue[]:
                                b=2
                                print[a]
                                print[b]
                blue[]
                print[a]
>>> red[]

đầu ra

1
2
1

Trong mã này, 'b' có phạm vi cục bộ trong hàm Python 'blue' và 'a' có phạm vi không cục bộ trong 'blue'

Tất nhiên, phạm vi biến python không phải là toàn cầu hoặc cục bộ là không cục bộ. Đây còn được gọi là phạm vi kèm theo

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

Cuối cùng, chúng ta nói về phạm vi rộng nhất. Phạm vi tích hợp có tất cả các tên được tải vào phạm vi biến python khi chúng tôi khởi động trình thông dịch

Ví dụ: chúng ta không bao giờ cần nhập bất kỳ mô-đun nào để truy cập các chức năng như print[] và id[]

Từ khóa toàn cầu trong Python

Cho đến nay, chúng tôi chưa gặp bất kỳ vấn đề nào với phạm vi toàn cầu. Vì vậy, hãy lấy một ví dụ

>>> a=1
>>> def counter[]:
                a=2
                print[a]            
>>> counter[]

đầu ra

2

Bây giờ, khi chúng tôi tham chiếu đến 'a' bên ngoài chức năng này, chúng tôi nhận được 1 thay vì 2

>>> a

đầu ra

1

Lý do tại sao điều này xảy ra?

Điều này đã không thay đổi bất cứ điều gì cho toàn cầu 'a'. Bây giờ, nếu bạn muốn thay đổi phiên bản chung của 'a' thì sao?

>>> a=1
>>> def counter[]:
                global a
                a=2
                print[a]    
>>> counter[]

đầu ra

2

>>> a

đầu ra

2

Những gì chúng tôi làm ở đây là, chúng tôi tuyên bố rằng 'a' chúng tôi sẽ sử dụng trong chức năng này là từ phạm vi toàn cầu

Sau này, bất cứ khi nào chúng ta tham chiếu đến 'a' bên trong 'counter', người phiên dịch biết chúng ta đang nói về 'a' toàn cầu

Trong ví dụ này, nó đã thay đổi giá trị của 'a' toàn cục thành 2

Từ khóa không cục bộ trong Python

Giống như từ khóa ‘global’, muốn thay đổi biến nonlocal, bạn phải sử dụng từ khóa ‘nonlocal’. Trước tiên hãy thử điều này mà không cần từ khóa

>>> def red[]:
                a=1
                def blue[]:
                                a=2
                                b=2
                                print[a]
                                print[b]
                blue[]
                print[a]           
>>> red[]

đầu ra

2
2
1

Như bạn có thể thấy, điều này không làm thay đổi giá trị của 'a' bên ngoài hàm 'blue'. Để có thể làm điều đó, chúng tôi sử dụng 'nonlocal'

>>> a
0

đầu ra

2
2
2

Thấy?

Câu hỏi phỏng vấn Python về Phạm vi biến Python

  1. Bạn có ý nghĩa gì bởi phạm vi?
  2. Các loại phạm vi biến là gì?
  3. phạm vi của biến với ví dụ là gì?
  4. Biến python là gì?
  5. Làm thế nào để bạn khai báo một biến trong Python 3?

Phần kết luận

Chúng tôi hy vọng rằng phạm vi biến Python sẽ rõ ràng hơn đối với bạn. Chúng tôi đã thấy bốn loại phạm vi - phạm vi cục bộ, phạm vi kèm theo, phạm vi toàn cầu và phạm vi tích hợp

Chúng tôi cũng thấy hai từ khóa- 'toàn cầu' và 'không địa phương'. Hy vọng bạn đã có niềm vui, hẹn gặp lại

Nếu bạn hài lòng với DataFlair, đừng quên làm chúng tôi hài lòng với phản hồi tích cực của bạn trên Google. Facebook

Phạm vi trong ví dụ Python là gì?

Ví dụ: nếu bạn gán giá trị cho tên bên trong một hàm, thì tên đó sẽ có phạm vi Python cục bộ . Ngược lại, nếu bạn gán một giá trị cho một tên bên ngoài tất cả các hàm—chẳng hạn như ở cấp cao nhất của một mô-đun—thì tên đó sẽ có phạm vi Python toàn cầu.

Phạm vi của một biến có nghĩa là gì?

Nói một cách đơn giản, phạm vi của một biến là thời gian tồn tại của nó trong chương trình . Điều này có nghĩa là phạm vi của một biến là khối mã trong toàn bộ chương trình nơi biến được khai báo, sử dụng và có thể được sửa đổi.

Hai phạm vi cơ bản của biến trong Python là gì?

Trong Python, chúng ta có thể khai báo biến ở 3 phạm vi khác nhau. phạm vi cục bộ, toàn cầu và phạm vi không cục bộ.

Ba phạm vi trong Python là gì?

Trong Python, có 4 loại phạm vi như sau. .
Phạm vi toàn cầu
Phạm vi địa phương
Phạm vi kèm theo
Phạm vi tích hợp

Chủ Đề