Hướng dẫn can two python scripts import each other? - hai tập lệnh python có thể nhập lẫn nhau không?

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('http://www.example.com/')

Khi bắt đầu, mô -đun trống. Sau đó, Python thực thi:

import webbrowser

Sau đó, mô -đun chỉ chứa

import webbrowser
6. Sau đó, Python thực hiện điều này:

def open_example():
    webbrowser.open('http://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 url

Nói

import webbrowser
5 được nhập khẩu đầu tiên. Mã này được thực thi:

import webbrowser

import 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_example

import 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('http://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 webbrowser

Nó 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 url

Nó xác định

import webbrowser
0. Sau đó, nó thực hiện:

from example_opener import open_example

import 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.

Hướng dẫn can two python scripts import each other? - hai tập lệnh python có thể nhập lẫn nhau không?

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

Hướng dẫn can two python scripts import each other? - hai tập lệnh python có thể nhập lẫn nhau không?

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ả:

Hướng dẫn can two python scripts import each other? - hai tập lệnh python có thể nhập lẫn nhau không?

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
0

Về 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,

Làm cách nào để tích hợp hai tập lệnh Python?

Một điều bạn có thể làm là nhập tên tệp thứ hai vào tệp chính.Ví dụ: tên tệp đầu tiên của tôi là 'main.py' và tệp thứ hai là 'float.py', bạn có thể hợp nhất các tệp này lại với nhau bằng cách nhập: _merge_ = 'float.py' trong tệp chính, là 'main.py' Hy vọng nó hoạt động!!

Chúng ta có thể nhập một tệp python sang một tệp python khác không?

Các mô -đun Python có thể nhận được quyền truy cập vào mã từ một mô -đun khác bằng cách nhập tệp/chức năng bằng Nhập..

Các mô -đun có thể nhập lẫn nhau không?

Các mô -đun có thể nhập các mô -đun khác.Đó là thông lệ nhưng không bắt buộc phải đặt tất cả các báo cáo nhập ở đầu mô -đun (hoặc tập lệnh, cho vấn đề đó).Các tên mô -đun đã nhập, nếu được đặt ở cấp cao nhất của một mô -đun (bên ngoài bất kỳ chức năng hoặc lớp nào), sẽ được thêm vào không gian tên toàn cầu của mô -đun.. It is customary but not required to place all import statements at the beginning of a module (or script, for that matter). The imported module names, if placed at the top level of a module (outside any functions or classes), are added to the module's global namespace.

Điều gì xảy ra nếu tôi nhập cùng một mô -đun hai lần Python?

Câu trả lời cũng, khi nhập các mô -đun từ cùng một đường dẫn, cùng một phiên bản mô -đun được trả về.the same module instance is returned.