Điều này nhập hàm/lớp/mô-đun _
vào không gian tên hiện tại. Vì vậy, thay vì phải nhập GTG._
, bạn chỉ cần nhập _
để sử dụng.
Dưới đây là một số tài liệu:
http://docs.python.org/tutorial/modules.html#more-on-modules
Cần lưu ý rằng bạn nên sử dụng này một cách cẩn thận. Làm điều này quá nhiều có thể gây ô nhiễm không gian tên hiện tại, làm cho mã khó đọc hơn và có thể giới thiệu các lỗi thời gian chạy. Ngoài ra, KHÔNG BAO GIỜ KHÔNG BAO GIỜ KHÔNG BAO GIỜ làm điều này:
from MODULE import *
, vì nó rất nhiều gây ô nhiễm không gian tên hiện tại.
Kỹ thuật này hữu ích nhất khi bạn biết bạn chỉ sử dụng một hoặc hai hàm/lớp/mô-đun từ mô-đun, vì việc này chỉ nhập các nội dung được liệt kê.
Ví dụ, nếu tôi muốn sử dụng imap
chức năng từ các module itertools
, và tôi biết tôi sẽ không cần bất kỳ itertools
chức năng khác, tôi có thể viết
from itertools import imap
và nó sẽ chỉ nhập imap
chức năng.
Như tôi đã nói trước đó, điều này nên được sử dụng một cách cẩn thận, vì một số người có thể nghĩ rằng
import itertools
# ... more code ...
new_list = itertools.imap(my_func, my_list)
là dễ đọc hơn so
from itertools import imap
# ... more code ...
new_list = imap(my_func, my_list)
vì nó làm cho nó rõ ràng chính xác mô-đun imap
chức năng đến từ.
Xin cảm ơn, điều này thực sự hữu ích. Tôi đã nhận thức được cú pháp chung 'từ BLA nhập khẩu bla' để tìm hiểu về quy ước này thực sự là những gì tôi đang tìm kiếm! Sử dụng một cách viết tắt như vậy có ý nghĩa hơn bây giờ. Cảm ơn bạn – Paul
@bp Sử dụng hợp lý. Bên cạnh đó, đọc tài liệu được waaaaay có giá trị cao hơn trong văn hóa python hơn là khẳng định quyền sở hữu là ... – twneale