Tôi có gói Python mymodule
với gói phụ utils
(ví dụ: thư mục con chứa các mô-đun có chức năng). Các hàm có cùng tên với tệp/mô-đun mà chúng đang hoạt động.Nhập hàm/lớp từ mô-đun Python có cùng tên
Tôi muốn để có thể truy cập vào các chức năng như sau,
from mymodule.utils import a_function
Kỳ lạ tuy nhiên, đôi khi tôi có thể nhập các chức năng sử dụng các ký hiệu trên, tuy nhiên thời điểm khác tôi không thể. Tôi đã không thể tìm ra lý do tại sao (ví dụ, gần đây tôi đổi tên một hàm và tệp trong đó và phản ánh việc đổi tên này trong tệp utils.__init__.py
nhưng nó không còn được nhập dưới dạng hàm (thay vì mô-đun) trong một kịch bản của tôi.
các utils.__init__.py
đọc một cái gì đó như thế nào,
__all__ = ['a_function', 'b_function' ...]
from a_function import a_function
from b_function import b_function
...
mymodule.__init__.py
không có tham chiếu đến utils
Ý tưởng?
Vậy sự khác nhau giữa 'nhập mymodule.utils thành utils' và' từ mymodule import utils' là gì? –
@Mike DeSimone: Điểm tốt. Tôi đã cập nhật câu trả lời của mình cho phù hợp. –