Hướng dẫn how many local scopes are there in a python program - có bao nhiêu phạm vi cục bộ trong một chương trình 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. Show
Phạm vi địa phươngMộ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) myfunc() Hãy tự mình thử » Chức năng bên trong chức năngNhư đã giải thích trong ví dụ trên, biến 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) myfunc() Hãy tự mình thử » Chức năng bên trong chức năngNhư đã giải thích trong ví dụ trên, biến 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ử » 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ử » 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) 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 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ử » myfunc() Hãy tự mình thử » Hãy tự mình thử » Quy tắc phạm vi trong các chức năngBây giờ chúng tôi đã bước lên để viết các chức năng của riêng mình, chúng tôi cần phải chính thức hơn một chút về những cái tên có ý nghĩa gì trong Python. Khi bạn sử dụng tên trong một chương trình, Python tạo ra, thay đổi hoặc tìm kiếm tên trong cái được gọi là không gian tên, một nơi có tên sống. Như chúng ta đã thấy, những cái tên trong mùa xuân Python tồn tại khi chúng được gán một giá trị. Bởi vì tên aren đã được tuyên bố trước thời hạn, Python sử dụng việc gán tên để liên kết nó với một không gian tên cụ thể. Bên cạnh mã bao bì, các chức năng thêm một lớp không gian tên bổ sung vào các chương trình của bạn theo mặc định, các tên được gán bên trong một hàm được liên kết với không gian tên hàm đó và không ai khác. Đây là cách thức hoạt động của nó. Trước khi bạn bắt đầu viết các chức năng, tất cả các mã đã được viết ở cấp cao nhất của một mô-đun, do đó, các tên sống trong chính mô-đun hoặc được xây dựng theo định nghĩa của Python (ví dụ: ____ 10). [29] Các chức năng cung cấp một không gian tên lồng nhau (đôi khi được gọi là phạm vi), trong đó bản địa hóa các tên họ sử dụng, sao cho tên bên trong hàm đã giành được xung đột với các tên bên ngoài (trong một mô -đun hoặc hàm khác). Chúng tôi thường nói rằng các chức năng xác định phạm vi cục bộ và các mô -đun xác định phạm vi toàn cầu. Hai phạm vi có liên quan như sau:scope), which localizes the names they use, such that names inside the function won’t clash with those outside (in a module or other function). We usually say that functions define a local scope, and modules define a global scope. The two scopes are related as follows: Mô -đun kèm theo là một phạm vi toàn cầu Mỗi mô -đun là một phạm vi toàn cầu, một không gian tên nơi các biến được tạo (được gán) ở cấp cao nhất của tệp mô -đun trực tiếp. Mỗi cuộc gọi đến một hàm là một phạm vi địa phương mớiMỗi khi bạn gọi một hàm, bạn tạo một phạm vi địa phương mới, một không gian tên nơi các tên được tạo bên trong hàm thường được sống. Tên được chỉ định là địa phương, trừ khi được tuyên bố toàn cầuTheo mặc định, tất cả các tên được gán bên trong một định nghĩa hàm được đặt trong phạm vi cục bộ (không gian tên được liên kết với lệnh gọi hàm). Nếu bạn cần gán một tên sống ở cấp cao nhất của mô-đun bao quanh hàm, bạn có thể làm như vậy bằng cách khai báo nó trong một câu lệnh Các tên không được gán một giá trị trong định nghĩa hàm được coi là toàn cầu (trong không gian tên mô-đun kèm theo) hoặc tích hợp (trong mô-đun được xác định trước mô-đun Python cung cấp). Độ phân giải tên: Quy tắc LGBNếu phần trước nghe có vẻ khó hiểu, nó thực sự sôi sục đến ba quy tắc đơn giản:
Nói cách khác, tất cả các tên được gán bên trong một câu lệnh y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule2 là người dân địa phương theo mặc định; Các chức năng có thể sử dụng toàn cầu, nhưng họ phải khai báo toàn cầu để thay đổi chúng. Độ phân giải tên Python đôi khi được gọi là quy tắc LGB, sau tên phạm vi:LGB rule, after the scope names:
Hình 4.1 minh họa ba phạm vi Python. Như một bản xem trước, chúng tôi cũng muốn bạn biết rằng các quy tắc này chỉ áp dụng cho các tên đơn giản (chẳng hạn như y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule3). Trong hai chương tiếp theo, chúng tôi sẽ thấy rằng các quy tắc cho các tên đủ điều kiện (chẳng hạn như y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule4, được gọi là thuộc tính) sống trong một đối tượng cụ thể và do đó hoạt động khác nhau.attributes) live in a particular object and so work differently. Hình & NBSP; 4-1. & NBSP; Quy tắc tra cứu phạm vi LGB Thí dụHãy cùng nhìn vào một ví dụ thể hiện các ý tưởng phạm vi. Giả sử chúng ta viết mã sau trong tệp mô -đun: # global scope X = 99 # X and func assigned in module: global def func(Y): # Y and Z assigned in function: locals # local scope Z = X + Y # X is not assigned, so it's a global return Z func(1) # func in module: result=100 Mô -đun này và chức năng mà nó chứa, sử dụng một số tên để thực hiện kinh doanh của họ. Sử dụng các quy tắc phạm vi Python, chúng ta có thể phân loại các tên như sau: Tên toàn cầu:
y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule5 là toàn cầu bởi vì nó được gán ở cấp cao nhất của tệp mô -đun; Nó có thể được tham chiếu bên trong chức năng mà không được tuyên bố toàn cầu. y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule6 là toàn cầu vì lý do tương tự; Câu lệnh y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule2 gán một đối tượng hàm cho tên y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule6 ở cấp cao nhất của mô -đun.Tên địa phương: x 1, x 2 Toàn bộ điểm đằng sau sơ đồ phân biệt tên này là các biến cục bộ đóng vai trò là tên tạm thời mà bạn chỉ cần trong khi một hàm đang chạy. Chẳng hạn, đối số Tuyên bố toàn cầuTuyên bố
Tuyên bố y, z = 1, 2 # global variables in module def all_global(): global x # declare globals assigned x = y + z # no need to declare y,z: 3-scope rule Ở đây, Nhận việc học Python ngay bây giờ với nền tảng học tập O hèReilly.learning platform. Các thành viên của O hèReilly trải nghiệm đào tạo trực tuyến trực tiếp, cộng với sách, video và nội dung kỹ thuật số từ gần 200 nhà xuất bản.nearly 200 publishers. Có bao nhiêu 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.
Phạm vi địa phương trong Python là gì?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 đó.
Có bao nhiêu phạm vi?JavaScript có 3 loại phạm vi: Phạm vi khối.Phạm vi chức năng.Phạm vi toàn cầu.3 types of scope: Block scope. Function scope. Global scope.
Phạm vi địa phương và toàn cầu trong Python là gì?Các biến được xác định bên trong một cơ thể chức năng có phạm vi cục bộ và những biến được xác định bên ngoài có phạm vi toàn cầu.Đ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ầu có thể được truy cập trên toàn bộ cơ thể chương trình bởi tất cả các chức năng.. This means that local variables can be accessed only inside the function in which they are declared, whereas global variables can be accessed throughout the program body by all functions. |