Việc nhập Python có lười biếng không?
Trong bài đăng này, chúng ta sẽ hiểu Lazy import trong Python là gì? . Hãy xem các câu lệnh nhập bên dưới bằng Python Show import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn import nltk import os import sys import re import seaborn as sns import pickle Và danh sách được tiếp tục. Thông thường trong một dự án khoa học dữ liệu lớn, chúng tôi cần nhập thêm nhiều thư viện vào mã của mình. Trong những trường hợp như vậy, chúng ta có thể tránh sử dụng nhiều câu lệnh nhập bằng cách sử dụng một câu lệnh nhập duy nhất sẽ nhập thư viện pyforest. Thư viện này, sau khi được nhập, sẽ lười nhập gần như tất cả thư viện khoa học dữ liệu mà chúng tôi sẽ phải sử dụng trong dự án của mình Để sử dụng thư viện này, trước tiên chúng ta cần cài đặt nó trong hệ thống của mình. Sử dụng lệnh sau để cài đặt pyforest pip install pyforest Để lười nhập tất cả các thư viện có sẵn trong pyforest, chúng ta sẽ cần nhập nó vào chương trình của mình như trong đoạn mã dưới đây Một trong những tính năng mới trong Python 3. 7 là PEP 562 bổ sung hỗ trợ cho pip install pyforest0 chỉ hiển thị những gì mà pip install pyforest1 định nghĩa Nhưng quá đắm chìm trong hệ thống nhập của Python, mối quan tâm của tôi nằm ở Theo truyền thống, có hai cách để thực hiện nhập chậm/chậm. Cái cũ nhất đang thực hiện nhập cục bộ thay vì nhập toàn cầu (i. e. nhập trong chức năng của bạn thay vì ở đầu mô-đun của bạn). Mặc dù điều này có tác dụng trì hoãn quá trình nhập cho đến khi bạn chạy mã thực sự cần mô-đun mà bạn đang nhập, nhưng nó lại gây bất lợi khi phải viết đi viết lại cùng một câu lệnh nhập. Và nếu bạn chỉ thực hiện một số nhập cục bộ, bạn sẽ dễ dàng quên những cái bạn đang cố tránh và sau đó vô tình nhập mô-đun trên toàn cầu. Vì vậy, phương pháp này hoạt động, nó chỉ không lý tưởng Cách tiếp cận khác là sử dụng lazy loader được cung cấp trong pip install pyforest3. Giờ đây, nhiều người như Google, Facebook và Mercurial đã sử dụng thành công trình tải chậm này. Hai người đầu tiên thích nó để giảm thiểu chi phí khi chạy thử nghiệm trong khi người cuối cùng muốn khởi động nhanh. Một ưu điểm đối với trình tải lười biếng so với nhập cục bộ là bạn có thể kích hoạt sớm 0 khi việc tìm kiếm một mô-đun được thực hiện một cách háo hức, chỉ là quá trình tải bị hoãn lạiHầu hết mọi người cũng thiết lập nó để mọi thứ được tải một cách lười biếng. Bây giờ đó là một điều tốt và xấu. Nó tốt ở chỗ bạn phải làm rất ít để khiến mọi thứ tải một cách lười biếng. Điều tồi tệ là khi bạn làm điều gì đó không rõ ràng, cuối cùng bạn có thể phá vỡ những kỳ vọng mà mã đó có (có một lý do là "rõ ràng tốt hơn là không rõ ràng"). Nếu một mô-đun mong muốn được tải háo hức thì nó có thể bị hỏng nặng khi được tải một cách lười biếng. Mercurial thực sự đã phát triển một danh sách đen các mô-đun không tải một cách lười biếng để giải quyết vấn đề này, nhưng họ phải đảm bảo luôn cập nhật nó để nó không phải là một giải pháp hoàn hảo Trong Trăn 3. 7, các mô-đun hiện có thể có 0 sẽ được nâng lên. Nhưng nó rõ ràng và vẫn được xác định trên toàn cầu cho mô-đun của bạn, vì vậy việc kiểm soát sẽ dễ dàng hơnBản thân mã thực sự không phức tạp
Để sử dụng nó, bạn có thể làm như sau
Khi thiết kế cái này, phần khó nhất là làm thế nào để mô phỏng cú pháp 3 để tránh xung đột tên. Cuối cùng tôi đã chấp nhận một chuỗi gần giống với câu lệnh nhập mà bạn đã viết nếu bạn thực hiện nhập toàn cầu. Tôi có thể chia nó thành một đối số thứ ba lấy ánh xạ, nhưng tôi nghĩ điều đó là không cần thiết và tôi muốn có một API thống nhất hơnDù sao, tôi luôn hài lòng khi tôi có thể làm điều gì đó như thế này chỉ trong 20 dòng mã Python và cảm thấy như đó không phải là một vụ hack hoàn toàn. 😉 Điều gì xảy ra khi nhập Python?Khi một mô-đun được nhập lần đầu tiên, Python tìm kiếm mô-đun và nếu tìm thấy, nó sẽ tạo một đối tượng mô-đun 1, khởi tạo nó . Nếu không tìm thấy mô-đun được đặt tên, Lỗi ModuleNotFoundError sẽ xuất hiện. Python thực hiện các chiến lược khác nhau để tìm kiếm mô-đun được đặt tên khi máy móc nhập khẩu được gọi.
Việc nhập tệp Python có chạy không?Khi bạn nhập một mô-đun bằng Python, tất cả mã trong đó sẽ được chạy và tất cả các biến trong mô-đun đó sẽ bị kẹt .
Cách tốt nhất để nhập bằng Python là gì?Hướng dẫn kiểu nhập . Giữ nhập ở đầu tệp Viết nhập trên các dòng riêng biệt Tổ chức nhập khẩu thành các nhóm. nhập thư viện tiêu chuẩn đầu tiên, sau đó nhập của bên thứ ba và cuối cùng là nhập thư viện hoặc ứng dụng cục bộ Đặt hàng nhập khẩu theo thứ tự bảng chữ cái trong mỗi nhóm Tất cả các mục nhập có nên ở đầu Python không?Nội dung nhập phải luôn được viết ở đầu tệp, sau bất kỳ nhận xét và chuỗi tài liệu mô-đun nào . Nhập khẩu nên được chia theo những gì đang được nhập khẩu. Nhìn chung có ba nhóm. nhập thư viện tiêu chuẩn (các mô-đun tích hợp sẵn của Python) |