Quy tắc legb trong python
Logic đằng sau phạm vi là phạm vi xác định khả năng truy cập của các biến, hàm, đối tượng, v.v. Nó trực tiếp phụ thuộc vào nơi bạn tạo ra chúng Để hiểu thực sự cách phân giải phạm vi xảy ra trong Python, chúng ta nên phân tích quy tắc LEGB bởi vì, đó là chuỗi tên (biến, hàm, đối tượng, v.v.) mà Python phân giải trong một chương trình
Phạm vi cục bộ (hoặc chức năng) Phạm vi cục bộ đề cập đến tên (biến, hàm, v.v.) được xác định bên trong hàm. Nó có nghĩa là nó có thể truy cập được trong thời điểm nó được xác định cho đến khi kết thúc chức năng. Phạm vi cụ thể đó không thể được sửa đổi hoặc thậm chí truy cập bên ngoài chức năng. Như một ví dụ, def example(): Biến x chỉ có thể được truy cập bên trong hàm example(), vì vậy, khi chúng tôi cố gắng sử dụng nó dưới dạng print(x), nó sẽ không báo lỗi. Tuy nhiên, khi chúng tôi cố gắng tiếp cận nó từ bên ngoài hàm (bên dưới chúng tôi gọi là hàm ví dụ), sẽ xảy ra lỗi NameError: name 'x' is not defined Đó là bởi vì, phạm vi cục bộ không hiển thị bên ngoài chức năng nơi nó được tạo Phạm vi kèm theo là loại phạm vi chỉ tồn tại trong các hàm lồng nhau (Một hàm được xác định bên trong một hàm khác được gọi là hàm lồng nhau). Phạm vi kèm theo chỉ hiển thị cho các chức năng bên trong và kèm theo def example(): Đây là đầu ra của chúng tôi, outer function Như chúng ta đã học trước đây vì lý do y là một phạm vi cục bộ, nó chỉ có thể được gọi bên trong example_inner(). Tuy nhiên, x là một phạm vi bao quanh, điều đó có nghĩa là nó có thể được gọi bên trong hàm example(), hơn nữa là bên trong hàm example_inner() (bởi vì, mặc dù thực tế nó là một hàm khác, nhưng nó vẫn nằm trong hàm example()) Phạm vi toàn cầu (hoặc mô-đun)Phạm vi toàn cầu chứa tất cả các tên (biến, hàm, đối tượng, v.v.) mà bạn xác định ở mức cao nhất trong chương trình của mình. Điều đó có nghĩa là chúng ta có thể sử dụng tên đó từ bất cứ đâu chúng ta muốn str="global function" Đầu ra sẽ là, global function Phạm vi tích hợpPhạm vi tích hợp có khả năng truy cập rộng nhất trong số các phạm vi khác. Chúng tôi có thể đưa ra các ví dụ như từ khóa, chức năng và các thuộc tính khác được tích hợp trong Python (Chúng tôi có thể gọi các từ khóa ở bất kỳ đâu trong chương trình của mình mà không cần xác định chúng) from math import pi Mặc dù chúng tôi không gán pi cho bất kỳ giá trị nào, nhưng khi chúng tôi sử dụng nó như trong đoạn mã trên, chúng tôi sẽ nhận được kết quả là, 3.141592653589793 Xét cho cùng, logic của quy tắc LEGB là trình tự mà trình thông dịch Python tuân theo khi thực thi chương trình của bạn. Đầu tiên, nó kiểm tra gần nhất ( →Phạm vi cục bộ), nếu nó không tồn tại, di chuyển một bước đến ( →Phạm vi toàn cầu) và với logic tương tự, nó sẽ kiểm tra ( →Phạm vi toàn cầu) và ở cuối ( →Phạm vi tích hợp) Hãy kiểm tra ví dụ nhanh để hiểu rõ hơn ________số 8ĐẦU RA sẽ là, Local scope Bởi vì khi chúng ta gọi hàm, chúng ta tạo một phạm vi cục bộ (“Phạm vi cục bộ”) và chúng ta cũng có một phạm vi toàn cầu (“Phạm vi toàn cầu”). Hàm ví dụ(x) ở vị trí đầu tiên xem liệu có phạm vi cục bộ hay không (có →“Phạm vi cục bộ”). Vì vậy, nó in "Phạm vi cục bộ" Tuy nhiên, trong ví dụ này NameError: name 'x' is not defined 0ĐẦU RA của chúng tôi là NameError: name 'x' is not defined 1Lần này khi chúng ta gọi một hàm, chúng ta không tạo bất kỳ phạm vi cục bộ nào. Hàm example() một lần nữa, trước tiên kiểm tra phạm vi cục bộ (không có), sau đó tiến lên một bước và kiểm tra phạm vi toàn cục (“Phạm vi toàn cầu”). Vì vậy, nó in "Phạm vi toàn cầu" |
Bài Viết Liên Quan
Hướng dẫn php implode associative array - mảng liên kết mã hóa php
(Php 4, Php 5, Php 7, Php 8)Illustode - tham gia các phần tử mảng với một chuỗi — Join array elements with a stringSự mô tảIllustode (Chuỗi $separator, mảng $array): ...
Lịch nghỉ tết của học sinh năm 2023
Căn cứ vào khung thời gian năm học 2022- 2023, Uỷ ban nhân dân Thành phố Hồ Chí Minh quy định thời gian nghỉ Tết Nguyên đán Quý Mão đối với trẻ mầm non, ...
Hướng dẫn bootstrap vertical-align - bootstrap căn chỉnh theo chiều dọc
Dễ dàng thay đổi sự liên kết dọc của nội tuyến, khối nội tuyến, bảng nội tuyến và các phần tử ô bảng.Thay đổi sự liên kết của các yếu tố với ...
Hướng dẫn re findall trong python - re findall in python
Nội dung chính Regex trong Python Các hàm Regex Xây dựng biểu thức chính quyMeta-CharactersKý tự đặc biệtSet Hàm findall() Đối tượng Match (kết quả khớp) Các ...
Hướng dẫn how do you create a new function in javascript? - làm thế nào để bạn tạo một hàm mới trong javascript?
Mỗi hàm JavaScript thực sự là một đối tượng Function. Điều này có thể được nhìn thấy với mã (function () {}).constructor === Function, trả về đúng.Người xây ...
Hướng dẫn dùng modififer trong PHP
Trong bài này, chúng ta sẽ tìm hiểu về cách sử dụng access modifier trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình ...
Hướng dẫn web scraping python w3schools - web cạo python w3schools
Xử lý tập tin là một phần quan trọng của bất kỳ ứng dụng web nào.Python có một số chức năng để tạo, đọc, cập nhật và xóa các tệp.Xử lý tập ...
It có nên học linux
Bài viết được sự cho phép của tác giả Kiên NguyễnChào các bạn, như các bạn đều đã biết, hiện nay có 3 hệ điều hành phổ biến nhất cho máy tính đó ...
Tìm hiểu user root trong linux
Bài viết này là cái note nhỏ để tìm hiểu sự khác biệt giữa lệnh “su – user” và “su user” trên Linux hay nói cách khác là cách sử dụng lệnh “su” có ...
Hướng dẫn object-oriented programming in javascript - lập trình hướng đối tượng trong javascript
Trước khi đọc bài viết này, bạn nên ôn lại kiến thức về object và prototype trong Javacript. Trước khi phân tích về OOP trong JavaScript, mình sẽ nhắc lại sơ 1 ...
Hướng dẫn object trong javascript - đối tượng trong javascript
Đối tượng trong javascrip Như bạn đã biết, JavaScript không phải là một ngôn ngữ lập trình hướng đối tượng, tuy nhiên bạn hoàn toàn có thể lập trình ...
Kế hoạch nghỉ tết 2023
Ở bài viết trước, VinciLand đã thông tin về lịch nghỉ Tết Âm lịch lịch năm 2023. Sau kỳ nghỉ này, người dân trên cả nước sẽ cùng đón Tết Nguyên đán ...
Hướng dẫn how to add complex numbers in python - cách thêm số phức trong python
Xem thảo luậnCải thiện bài viếtLưu bài viếtĐọcBàn luậnXem thảo luậnCải thiện bài viếtLưu bài viếtĐọcAddition of complex number: In Python, complex numbers can ...
Hướng dẫn can you append a numpy array to a list in python? - bạn có thể nối một mảng numpy vào một danh sách trong python không?
Sử dụng Python3.5.3 trong Spyder 3.1.3 trên Raspbian trên Raspberry Pi. Việc nối hai lần kết nối Numpy vào danh sách có tên List0 hoạt động tốt với các mảng Numpy ...
Hướng dẫn plot quantiles python - con trăn lượng tử cốt truyện
Viết tool facebook bằng pythonNếu như bạn đã quá quen thuộc với nhưng công nghệ làm ứng dụng Desktop kinh điển như Winform, WPF (C#) hay Swing, JavaFx (Java) và nghĩ ...
Hướng dẫn run javascript online console - chạy bảng điều khiển trực tuyến javascript
Chào mừng bạn đã dến với bài giảng tiếp theo của series Javascript căn bản!series Javascript căn bản!Ở bài giảng trước, ta đã tìm hiểu về những phương pháp ...
Hướng dẫn dùng define boolean trong PHP
Kiểu logic là kiểu dữ liệu chỉ chứa giá trị đúng và sai. Trong PHP, kiểu logic có tên gọi bool hoặc boolean tùy tình huống sử dụng. Kiểu bool trong PHP là kết ...
Hướng dẫn python declare class inside function - python khai báo lớp bên trong hàm
Edit::Xem câu trả lời đầy đủ của tôi ở cuối câu hỏi này.TL; DR Trả lời: Python có phạm vi lồng nhau tĩnh. Khía cạnh tĩnh có thể tương tác với các khai ...
Hướng dẫn get timezone from country code javascript - lấy múi giờ từ mã quốc gia javascript
Tôi sẽ trả lời câu hỏi này cho Node.js bằng cách sử dụng TypeScript (vui lòng xóa các loại nếu bạn muốn sử dụng với kế hoạch JavaScript). Đối với điều ...
Hướng dẫn how do i add a calendar in bootstrap? - làm cách nào để thêm lịch trong bootstrap?
Hướng dẫn này sẽ dạy bạn cách thêm trình chọn ngày vào biểu mẫu của bạn bằng các công cụ nguồn mở. Một người chọn ngày là một thả xuống tương ...