Khi bạn có một thư viện tốt bằng văn bản, mà đôi khi là trường hợp trong python, anh nên chỉ nhập nó và sử dụng nó như nó. Thư viện được viết tốt có xu hướng lấy cuộc sống và ngôn ngữ của riêng nó, dẫn đến mã dễ đọc, nơi bạn hiếm khi tham khảo thư viện. Khi một thư viện được viết tốt, bạn không cần phải đổi tên hay bất cứ điều gì khác quá thường xuyên.
import gat
node = gat.Node()
child = node.children()
Đôi khi bạn không thể viết theo cách này, hoặc sau đó bạn muốn gỡ bỏ mọi thứ từ thư viện bạn đã nhập.
from gat import Node, SubNode
node = Node()
child = SubNode(node)
Đôi khi bạn làm điều này cho rất nhiều thứ, nếu chuỗi nhập của bạn tràn 80 cột, Đó là ý tưởng tốt để làm điều này:
from gat import (
Node, SubNode, TopNode, SuperNode, CoolNode,
PowerNode, UpNode
)
Chiến lược tốt nhất là để giữ cho tất cả các hàng nhập khẩu trên đầu tệp. Được ưu tiên đặt hàng theo thứ tự bảng chữ cái, nhập khẩu-câu lệnh trước, sau đó từ các câu lệnh nhập.
Bây giờ tôi cho bạn biết tại sao đây là quy ước tốt nhất.
Python hoàn toàn có thể có một nhập tự động, mà sẽ nhìn từ nhập khẩu chính cho giá trị khi nó không thể được tìm thấy từ không gian tên chung. Nhưng đây không phải là một ý tưởng hay. Tôi giải thích ngay tại sao. Bên cạnh việc thực hiện phức tạp hơn việc nhập khẩu đơn giản, các lập trình viên sẽ không suy nghĩ quá nhiều về các sự cố và tìm ra nơi bạn nhập khẩu những thứ nên được thực hiện theo cách khác hơn là chỉ nhìn vào nhập khẩu.
Cần tìm hiểu các trường hợp là một lý do khiến mọi người ghét "từ ... nhập *". Một số ví dụ xấu mà bạn cần phải làm điều này tồn tại mặc dù, ví dụ opengl -wrappings.
Vì vậy, các định nghĩa nhập thực sự có giá trị như xác định depedencies của chương trình. Đó là cách bạn nên khai thác chúng. Từ đó bạn có thể nhanh chóng kiểm tra xem một số hàm lạ được nhập từ đâu.
Xem http://stackoverflow.com/questions/187453/import-package-vs-import-packagespecifictype –
Xem http://stackoverflow.com/questions/186472/from-x-import-a-versus-import -x-xa –