Các mô -đun có thể nhập vào theo chu kỳ, nhưng có một sự bắt bóng. Trong trường hợp đơn giản, nó sẽ hoạt động bằng cách di chuyển các câu lệnh import webbrowser 2 sang dưới cùng của tệp hoặc không sử dụng cú pháp import webbrowser 3.
Đây là lý do tại sao nó hoạt động:
Khi bạn nhập một mô -đun, Python lần đầu tiên kiểm tra import webbrowser 4. Nếu nó ở đó, nó chỉ nhập từ đó. Nếu nó không có ở đó, nó cố gắng nhập nó theo cách bình thường; Về cơ bản, nó tìm thấy tệp và chạy các thứ trong đó.
Chạy một mô -đun điền vào nội dung của mô -đun. Ví dụ: giả sử chúng ta có mô -đun này, được đặt tên một cách sáng tạo import webbrowser 5:
import webbrowser def open_example(): webbrowser.open('//www.example.com/')Khi bắt đầu, mô -đun trống. Sau đó, Python thực thi:
import webbrowserSau đó, mô -đun chỉ chứa import webbrowser 6. Sau đó, Python thực hiện điều này:
def open_example(): webbrowser.open('//www.example.com/')Python tạo ra import webbrowser 7. Bây giờ mô -đun chứa import webbrowser 6 và import webbrowser 7.
Nói import webbrowser 6 chứa mã này:
from example_opener import open_example def open(url): print urlNói import webbrowser 5 được nhập khẩu đầu tiên. Mã này được thực thi:
import webbrowserimport webbrowser 6 chưa được nhập khẩu, vì vậy Python thực hiện nội dung của import webbrowser 6:
from example_opener import open_exampleimport webbrowser 5 đã được nhập khẩu, nhưng chưa được thực hiện đầy đủ. Python không quan tâm. Python kéo mô -đun ra khỏi import webbrowser 4. Tại thời điểm này, import webbrowser 5 vẫn trống. Nó chưa xác định import webbrowser 7, thậm chí cũng không hoàn thành nhập import webbrowser 6. Python không thể tìm thấy import webbrowser 7 trong import webbrowser 5, vì vậy nó thất bại.
Điều gì sẽ xảy ra nếu chúng tôi nhập import webbrowser 7 từ cuối import webbrowser 6 và import webbrowser 6 từ cuối import webbrowser 5? Python sẽ bắt đầu bằng cách thực thi mã này:
def open_example(): webbrowser.open('//www.example.com/')import webbrowser 6 chưa tồn tại, nhưng nó không quan trọng cho đến khi import webbrowser 7 được gọi. Bây giờ import webbrowser 5 chỉ chứa import webbrowser 7. Sau đó nó thực hiện:
import webbrowserNó chưa được nhập khẩu, vì vậy Python thực thi import webbrowser 6. Nó bắt đầu:
def open(url): print urlNó xác định import webbrowser 0. Sau đó, nó thực hiện:
from example_opener import open_exampleimport webbrowser 5 là trong import webbrowser 4, vì vậy nó sử dụng điều đó. import webbrowser 5 chứa import webbrowser 7, vì vậy nó thành công. Python kết thúc nhập khẩu import webbrowser 6. Điều đó kết thúc nhập khẩu import webbrowser 6 từ import webbrowser 5. Đó là điều cuối cùng trong import webbrowser 5, vì vậy việc nhập import webbrowser 5 hoàn thành, cũng thành công.
Liên kết các tệp Python với nhau là một cách rất tốt để sắp xếp mã của bạn và không kết thúc với hàng trăm dòng lớp và chức năng.
Trong bài viết ngắn này, mục tiêu của tôi sẽ chỉ cho bạn cách sử dụng các hàm bạn đã tạo trong một tệp .py trong một tệp khác mà không phải viết lại chúng.
Hãy để tạo ra một tệp script1.py sẽ chứa một hàm gọi là functionOne.
Như bạn có thể thấy, hàm này yêu cầu một số nguyên sẽ được chạy theo phương trình, nếu biến lớn hơn 10 in x, khác in y.
Bây giờ, hãy để Lôi tạo một tệp thứ hai được gọi là script2.pypy
Bây giờ, khi chúng tôi chạy kịch bản của chúng tôi bên trong thiết bị đầu cuối của chúng tôi, đây là kết quả:
Và đây là nó. Mặc dù không đề cập đến hàm functionOne, script2.py của chúng tôi có thể tìm thấy hàm trong script1.py và thực thi nó.
Điều duy nhất bạn phải làm là viết:
import webbrowser 0Về cơ bản, về cơ bản là yêu cầu tệp đích của đích để tìm một tệp có tên là script1.py và nhập tất cả các chức năng có bên trong tài liệu.
Trong trường hợp bạn không muốn nhập tất cả các chức năng có trong tài liệu nguồn của mình, bạn cũng có thể viết điều này:
import webbrowser 1Điều này đảm bảo rằng bạn chỉ nhập chức năng mà bạn dự định thực sự sử dụng và giữ cho mã của bạn sạch sẽ và dễ hiểu.
Như tôi đã nói, đây là một bài viết ngắn nhưng tôi tin rằng nó sẽ hữu ích :). Như mọi khi, nếu bạn có bất kỳ câu hỏi nào, tôi sẽ trả lời bất kỳ câu hỏi nào bạn có thể có trong phần bình luận bên dưới vì vậy hãy thoải mái bắn!
Cho đến lần sau,