Computer >> Máy Tính >  >> Lập trình >> Python

Giải thích không gian tên python và phạm vi của một biến.

Không gian tên là một cách để triển khai phạm vi. Trong Python, mỗi gói, mô-đun, lớp, hàm và hàm phương thức sở hữu một "không gian tên" trong đó các tên biến được phân giải. Khi một chức năng, mô-đun hoặc gói được đánh giá (nghĩa là bắt đầu thực thi), một không gian tên sẽ được tạo. Hãy coi nó như một "bối cảnh đánh giá". Khi một hàm, v.v., kết thúc quá trình thực thi, không gian tên sẽ bị xóa. Các biến bị loại bỏ. Thêm vào đó, có một không gian tên chung được sử dụng nếu tên đó không có trong không gian tên cục bộ.

Mỗi tên biến được kiểm tra trong không gian tên cục bộ (phần thân của hàm, mô-đun, v.v.), và sau đó được kiểm tra trong không gian tên chung.

Các biến thường chỉ được tạo trong một không gian tên cục bộ. Các câu lệnh toàn cục và phi địa phương có thể tạo các biến trong không gian tên cục bộ.

Độ phân giải phạm vi là bắt buộc khi một biến được sử dụng để xác định giá trị của nó đến từ đâu. Độ phân giải phạm vi trong Python tuân theo quy tắc LEGB.

L, Cục bộ - 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ục trong hàm đó.

E, Hàm cục bộ bao hàm - Đặt tên trong phạm vi cục bộ của bất kỳ và tất cả các hàm bao quanh tĩnh (hoặc lambdas), từ bên trong ra bên ngoài.

G, Global (mô-đun) - Các tên được gán ở cấp cao nhất của tệp mô-đun hoặc bằng cách thực thi một câu lệnh chung trong một định nghĩa trong tệp.

B, Tích hợp sẵn (Python) - Tên được chỉ định trước trong mô-đun tên tích hợp:open, range, SyntaxError, v.v.