Quy tắc LEGB trong ví dụ về Python
Chuyển đến nội dung chính
Show
Python trung gianNâng cao kỹ năng khoa học dữ liệu của bạn bằng cách tạo trực quan hóa bằng Matplotlib và thao tác với DataFrames bằng gấu trúcKhông gian tên python là một vùng chứa nơi các tên được ánh xạ tới các đối tượng, chúng được sử dụng để tránh nhầm lẫn trong trường hợp các tên giống nhau tồn tại trong các không gian tên khác nhau. Chúng được tạo bởi các mô-đun, hàm, lớp, v.v. Phạm vi trong Python là gìMột phạm vi xác định thứ tự phân cấp trong đó các không gian tên phải được tìm kiếm để có được ánh xạ của tên-đối tượng(biến). Đó là một bối cảnh trong đó các biến tồn tại và từ đó chúng được tham chiếu. Nó xác định khả năng truy cập và thời gian tồn tại của một biến. Hãy để chúng tôi lấy một ví dụ đơn giản như hình dưới đây. Python3inner pi variable1 inner pi variable2 inner pi variable3 inner pi variable4 inner pi variable5 inner pi variable0 inner pi variable1____51____52 inner pi variable4 _______01____06____07 inner pi variable4 inner pi variable9 inner pi variable6 inner pi variable7 đầu ra inner pi variable outer pi variable Chương trình trên cho các kết quả đầu ra khác nhau vì cùng một tên biến pi nằm trong các không gian tên khác nhau, một bên trong hàm print_pi và một bên ở cấp cao hơn. Khi print_pi() được thực thi, ' biến số pi bên trong ' được in vì đó là giá trị pi bên trong không gian tên hàm. Giá trị ‘biến pi bên ngoài‘ được in khi pi được tham chiếu trong không gian tên bên ngoài. Từ ví dụ trên, chúng ta có thể đoán rằng chắc chắn có một quy tắc được tuân theo, để quyết định một biến phải được chọn từ không gian tên nào. Độ phân giải phạm vi Quy tắc LEGB Trong PythonTrong Python, quy tắc LEGB được sử dụng để quyết định thứ tự tìm kiếm các không gian tên để phân giải phạm vi. Các phạm vi được liệt kê bên dưới theo thứ bậc (cao nhất đến thấp nhất/hẹp nhất đến rộng nhất)
Phạm vi cục bộ trong PythonPhạm vi cục bộ đề cập đến các biến được xác định trong hàm hiện tại. Luôn luôn, một hàm trước tiên sẽ tra cứu một tên biến trong phạm vi cục bộ của nó. Chỉ khi nó không tìm thấy nó ở đó, phạm vi bên ngoài mới được kiểm tra. Python3Có thể bạn quan tâminner pi variable02 inner pi variable1 inner pi variable2 inner pi variable05 inner pi variable5 inner pi variable07 inner pi variable1____51____52 inner pi variable4 _______01____06____07 inner pi variable4 inner pi variable86 đầu ra inner pi variable Khi chạy chương trình trên, việc thực thi hàm bên trong sẽ in giá trị của biến pi cục bộ (mức ưu tiên cao nhất trong quy tắc LEGB) vì nó được xác định và có sẵn trong phạm vi cục bộ. Phạm vi cục bộ và toàn cầu trong PythonNếu một biến không được xác định trong phạm vi cục bộ, thì nó sẽ được kiểm tra ở phạm vi cao hơn, trong trường hợp này là phạm vi toàn cầu. Python3inner pi variable87 inner pi variable1 inner pi variable2 inner pi variable05 inner pi variable5 inner pi variable07 inner pi variable1____51____52 inner pi variable4 _______01____06____07 inner pi variable4 inner pi variable86 inner pi variable6 inner pi variable7 đầu ra inner pi variable0 Do đó, như mong đợi, chương trình sẽ in ra giá trị trong phạm vi cục bộ khi thực thi hàm trong(). Đó là bởi vì nó được định nghĩa bên trong hàm và đó là nơi đầu tiên mà biến được tra cứu. Giá trị pi trong phạm vi toàn cầu được in khi thực thi print(pi) trên dòng 9. Phạm vi cục bộ, kèm theo và toàn cầu trong PythonĐối với phạm vi kèm theo, chúng ta cần định nghĩa một hàm bên ngoài bao quanh hàm bên trong, nhận xét biến cục bộ pi của hàm bên trong và tham chiếu đến pi bằng cách sử dụng từ khóa nonlocal. Python3inner pi variable14 inner pi variable1 inner pi variable2 inner pi variable05 inner pi variable4 inner pi variable5 inner pi variable20 inner pi variable1____51____52 inner pi variable3 inner pi variable1 inner pi variable5 inner pi variable07 inner pi variable28 inner pi variable29 inner pi variable28 inner pi variable31 inner pi variable28 inner pi variable6 inner pi variable7 inner pi variable1 inner pi variable86 inner pi variable4 inner pi variable38 inner pi variable6 inner pi variable7 đầu ra inner pi variable8 Khi bên ngoài () được thực thi, bên trong () và do đó, các hàm in được thực thi, in giá trị của biến số pi kèm theo. Câu lệnh trong dòng 10 tìm kiếm biến trong phạm vi cục bộ bên trong, nhưng không tìm thấy nó ở đó. Vì pi được tham chiếu với từ khóa nonlocal, điều đó có nghĩa là pi cần được truy cập từ hàm bên ngoài (i. e phạm vi bên ngoài). Tóm lại, biến pi không được tìm thấy trong phạm vi cục bộ, vì vậy các phạm vi cao hơn sẽ được tra cứu. Nó được tìm thấy trong cả phạm vi kèm theo và toàn cầu. Nhưng theo hệ thống phân cấp LEGB, biến phạm vi kèm theo được xem xét mặc dù chúng ta đã xác định một biến trong phạm vi toàn cầu. Phạm vi cục bộ, kèm theo, toàn cầu và tích hợpKiểm tra cuối cùng có thể được thực hiện bằng cách nhập pi từ mô-đun toán học và nhận xét về các biến pi toàn cục, kèm theo và cục bộ như hình bên dưới. Python3inner pi variable41 inner pi variable42 inner pi variable43____544 inner pi variable1 inner pi variable4 inner pi variable47 inner pi variable4 inner pi variable5 inner pi variable20 _______01____552 inner pi variable1 inner pi variable5 inner pi variable07 inner pi variable28 inner pi variable29 inner pi variable28 inner pi variable6 inner pi variable7 inner pi variable1 inner pi variable86 inner pi variable4 inner pi variable38 đầu ra inner pi variable0 Vì, pi không được xác định trong phạm vi cục bộ, kèm theo hoặc toàn cầu, nên phạm vi tích hợp được tra cứu i. e giá trị pi được nhập từ mô-đun toán học. Vì chương trình có thể tìm thấy giá trị của pi trong phạm vi ngoài cùng, nên sẽ thu được đầu ra sau, Biến phạm vi trong Python với ví dụ là gì?Phạm vi biến trong Python là gì? . Các biến này chỉ có thể được truy cập trong khu vực mà chúng được xác định , đây được gọi là phạm vi. Bạn có thể coi đây là một khối nơi bạn có thể truy cập các biến.
Ý nghĩa của L trong quy tắc LEGB đối với độ phân giải phạm vi là gì?Trong Python, quy tắc LEGB được sử dụng để quyết định thứ tự tìm kiếm các vùng tên để phân giải phạm vi. Các phạm vi được liệt kê bên dưới theo thứ bậc (cao nhất đến thấp nhất/hẹp nhất đến rộng nhất). địa phương(L). Được định nghĩa bên trong hàm/lớp .
Ví dụ về độ phân giải phạm vi trong Python là gì?Độ phân giải phạm vi trong Python tuân theo quy tắc LEGB. L, Local — Các tên được gán theo bất kỳ cách nào trong một hàm (hoặc lambda) và không được khai báo toàn cầu trong hàm đó. E, Các hàm cục bộ kèm theo - Tên trong phạm vi cục bộ của bất kỳ và tất cả các hàm (hoặc lambdas) tĩnh kèm theo, từ bên trong ra bên ngoài
Hình thức đầy đủ của LEGB là gì?Các chữ cái trong từ viết tắt LEGB là viết tắt của Phạm vi cục bộ, Bao quanh, Toàn cầu và Tích hợp . |
Bài Viết Liên Quan
How do you get a specific value from an object in javascript?
The Object.values() method returns an array of a given objects own enumerable property values, in the same order as that provided by a for...in loop. (The only difference is that a for...in loop ...
Hướng dẫn python string repeat
A good way of organizing your code is to put your main program into a function called main() or similar:def main(): sentence = input(Please enter sentence(s): ) num_words = ...
Hướng dẫn restart mysql centos 7
Centos 7 lệnh khác khá nhiều so với Centos 6 do đó có thể bạn sẽ cảm thấy hơi khó khăn khi sử dụng các dòng lệnh để thao tác những tác vụ cần thiết. Bài ...
How do you call a javascript function in html?
There are many ways to call a JavaScript function in the HTML document, and it is also not a difficult task. First, we have used one of the easiest ways to call a JavaScript function in HTML ...
Hướng dẫn required html là gì
1) Bộ chọn :required trong CSS- Bộ chọn :required dùng để chọn các phần tử form có thiết lập thuộc tính required.- Lưu ý:Các phần tử có thể được thiết lập ...
Hướng dẫn concat mongodb
Docs Home → MongoDB Manual$concatConcatenates strings and returns the concatenated string.$concat has the following syntax:{ $concat: [ , , ... ] }The arguments can be any valid expression as long ...
Hướng dẫn dùng www.ini trong PHP
Khi PHP chạy, nó sẽ nạp các cấu hình để thay đổi cách nó ứng sử từ các file php.ini, hầu hết các thiết lập được thực hiện ở đây (một số thiết ...
How do you ask a question on python?
1. Asking QuestionsInput means to enter data into a program.Use the input command to ask a question.You must save the answer into a suitably named variable using the = symbol.Task 1 - Create a ...
Hướng dẫn varchar max mysql
Độ dài tối đa của một varchar tùy thuộc vào kích thước hàng tối đa trong MySQL, là 64KB (không tính BLOB):VARCHAR(65535)Tuy nhiên, lưu ý rằng giới hạn thấp hơn ...
Kích thước quảng cáo facebook 2023
Để có được ảnh đại diện và ảnh bìa Fanpage Facebook chuẩn nhất đẹp nhất bạn phải tải lên ảnh có kích thước chuẩn theo quy định của Facebook. Tuy ...
How can i get data between two dates in php?
Im using a database to store logs, with a column date which holds the date it was inserted. The format of the date is MM/DD/YY. Please can anyone suggest how I would SELECT data in between two ...
Cấu trúc dự án nodejs
Nội dung bài viếtVideo học lập trình mỗi ngàyProject Express và Node.Js - Đây là một trong số câu hỏi tuần này. Một kiến trúc tốt chưa chắc phù hợp với ...
Hướng dẫn stroke css
Fonts chữ trên web về cơ bản là đồ họa dựa trên vector. Đó là lý do tại sao bạn có thể hiển thị chúng ở 12px hoặc 120px và chúng vẫn sắc nét và tương ...
Print e pattern in python
Last update on August 19 2022 21:50:46 (UTC/GMT +8 hours)Python Conditional: Exercise - 19 with SolutionWrite a Python program to print alphabet pattern E.Pictorial Presentation: ...
How do i do an if statement in python?
Python If ... ElsePython Conditions and If statementsPython supports the usual logical conditions from mathematics:Equals: a == bNot Equals: a != bLess than: a < bLess than or equal to: a bGreater ...
Hướng dẫn np vstack trong python
Tôi nghĩ đoạn mã sau minh họa sự khác biệt một cách độc đáo:>>> np.vstack(([1,2,3],[4,5,6])) array([[1, 2, 3], [4, 5, 6]]) >>> ...
Chi phí sinh mổ ở bệnh viện an sinh 2023
Bảo hiểm y tế là hình thức bảo hiểm ai cũng có thể tham gia để chăm lo, bảo vệ sức khỏe và giảm bớt chi phí khi đi khám chữa bệnh. Với phụ nữ mang ...
Hướng dẫn advanced list comprehension python
Nội dung chínhWhen to Use a List Comprehension in PythonHow to Create Lists in PythonUsing for LoopsUsing map() ObjectsUsing List ComprehensionsBenefits of Using List ComprehensionsHow to ...
How do you convert text to numeric in python?
View DiscussionImprove ArticleSave ArticleReadDiscussView DiscussionImprove ArticleSave ArticleIn Python an strings can be converted into a integer using the built-in int() function. The int() ...
Hướng dẫn dùng php pi trong PHP
botvietbai.com cung cấp các hướng dẫn, tài liệu tham khảo và bài tập trực tuyến miễn phí bằng tất cả các ngôn ngữ chính của web. Bao gồm các chủ đề phổ ...