Bạn đoán đúng cách để làm điều này, nhưng tôi có thể làm cho điều này một chút chính thức hơn và cho (hy vọng) một lời giải thích rõ ràng hơn so với một trong những bạn tìm thấy ở nơi khác. Nếu bạn muốn mô đun hóa nhập khẩu, tùy thuộc vào triết lý mã hóa của bạn có thể là một ý tưởng tốt hay xấu (minh bạch và sử dụng lại mã), cho dù nhập khẩu có xảy ra trong __init__.py
hay không, bạn có thể nhập khẩu từ một tập lệnh khác. Ví dụ:
"""import_scripts.py"""
import numpy as np
import scipy as sp
...
"""actual_code.py"""
from import_scripts import *
# np and sp are now in scope
Nhập từ __init__.py
chủ yếu là giống nhau, bạn chỉ cần theo truyền thống sử dụng một khẩu tương đối thay vì nếu bạn đang truy cập nó từ các mô-đun tương tự:
# To import form __init__
from . import *
quan trọng cần lưu ý mặc dù, rằng các loại nhập khẩu này sẽ chỉ hoạt động nếu bạn chạy các kịch bản lệnh python này rõ ràng như các mô-đun chứ không phải là các tập lệnh. Điều này có nghĩa:
python -m foo
thay vì
python foo.py
quan trọng, nhưng tinh tế khác biệt.
Hy vọng điều đó sẽ hữu ích. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nhiều hơn nữa.
Nguồn
2014-04-09 16:57:08
+1 Cảm ơn sự khác biệt tinh tế! – ksindi