Mô-đun Python có thể nhập mô-đun khác không?
Bạn có biết nếu bạn làm việc với các đối tượng ban đầu sau khi nhập chúng không? Show Việc bạn nên nhập một mô-đun ( Có một sự thật về việc nhập rất dễ quên. Một trong hai phương pháp này không nhập các đối tượng từ mô-đun khác mà thay vào đó tạo các bản sao của chúng. Mặc dù thông thường điều này không tạo ra nhiều sự khác biệt, nhưng đôi khi nó có thể xảy ra và sự khác biệt có thể là đáng kể Trong bài viết này, tôi so sánh việc sao chép các đối tượng từ một mô-đun thay vì nhập chúng. Tôi sẽ chỉ ra một lợi thế của việc nhập một mô-đun so với nhập các đối tượng từ một mô-đun, một lợi thế đôi khi có thể giúp bạn tránh được nhiều rắc rối Nhập một mô-đun. Các đối tượng ban đầu đang hoạt độngGiả sử chúng ta có một ứng dụng bao gồm ba mô-đun
Đây là nội dung của Tôi đã làm cho nó đơn giản nhất có thể. Bây giờ Vì vậy, Điều này hoạt động như mong đợi. Khi chúng tôi nhập mô-đun Bây giờ, chúng ta hãy thay đổi cách chúng ta nhập các đối tượng Đó là một sự khác biệt khá. Chuyện gì đã xảy ra thế? Chúng tôi đã thay đổi
Do đó, mặc dù những thay đổi của chúng tôi đối với Điều này có ý nghĩa rất nhiều, và thay đổi rất nhiều. May mắn thay, trong hầu hết các trường hợp, điều này không có vấn đề gì, bởi vì chúng tôi hiếm khi thay đổi các đối tượng từ mô-đun này sang mô-đun khác. Tuy nhiên, đôi khi, chúng tôi làm, và sau đó chúng tôi phải cẩn thận Để làm cho mọi thứ trở nên phức tạp hơn, chúng ta cần xem xét hai tình huống. nhập các đối tượng không thay đổi và nhập các đối tượng có thể thay đổi từ một mô-đun đối tượng bất biếnKhi bạn nhập một đối tượng bất biến từ một mô-đun, như trong Theo cách tương tự, chức năng Do đó, khi chúng tôi nhập một mô-đun ( Tuy nhiên, khi chúng tôi nhập các đối tượng bất biến trực tiếp từ một mô-đun ( đối tượng có thể thay đổiCác đối tượng có thể thay đổi không thể được sao chép và bất kỳ thay đổi nào đối với các đối tượng ban đầu của chúng hoặc cái gọi là bản sao đều được thực hiện đối với các đối tượng ban đầu. Điều này là do Python không tạo bản sao của đối tượng có thể thay đổi; Tính năng này của các đối tượng có thể thay đổi ảnh hưởng đến cách nhập hoạt động Hãy đơn giản hóa ứng dụng của chúng tôi. Bây giờ nó sẽ chỉ chứa một đối tượng, một từ điển, là một đối tượng Python có thể thay đổi. Vì vậy, Mô-đun Và đây là mô-đun Bạn có thấy những gì đã xảy ra? . đối tượng ban đầu đã được thay đổi tại chỗ Hành vi này là điển hình cho các đối tượng có thể thay đổi. Python không tạo bản sao của chúng; . Vì vậy, việc thay đổi giá trị của đối tượng được gán cho bất kỳ tên nào trong số này sẽ có tác dụng tương tự. đối tượng ban đầu sẽ bị ảnh hưởng Kết hợp hai loại nhập sẽ không thay đổi gì. Các đối tượng không thể thay đổi sẽ hoạt động giống như các đối tượng không thể thay đổi và các đối tượng có thể thay đổi sẽ hoạt động giống như các đối tượng có thể thay đổi. Hãy xem nó hoạt động như thế nào. Bạn có thể coi đó là một bài tập Lần này, chúng tôi sẽ chỉ làm việc với hai mô-đun, Trong Và đây là đầu ra Tôi hy vọng bạn hiểu đúng. Hiểu khía cạnh này của việc nhập các đối tượng và mô-đun sẽ giúp bạn tránh được các lỗi lạ có thể xảy ra khi ứng dụng của bạn chứa một số mô-đun với một số phân cấp phụ thuộc (e. g. , Như tôi đã đề cập ở trên, việc hiểu những điều phức tạp này của nhập Python sẽ giúp bạn tránh được những sai lầm trong các ứng dụng bao gồm một số mô-đun. Nhớ
Điểm cuối cùng có lẽ là quan trọng nhất. Khi bạn cần một bản sao, hãy tạo nó, nhưng hãy làm điều đó một cách rõ ràng khi bạn cần bản sao này. Tạo bản sao theo cách nhập cụ thể chắc chắn là ẩn ý, gián tiếp và không rõ ràng. Người mới bắt đầu và thậm chí một số Pythonistas trung cấp có thể quên hoặc hoàn toàn không biết rằng
Tất nhiên, tất cả những điều này đều quan trọng khi bạn thay đổi đối tượng từ mô-đun này sang mô-đun khác. Vậy thì bạn phải cẩn thận, và đây là lúc tất cả những điều chúng ta đang thảo luận có thể xảy ra. Tôi nghĩ tốt hơn hết là tránh nhầm lẫn khi tạo các bản sao của các đối tượng bằng cách nhập. Đây là lý do tại sao, ít nhất là trong ngữ cảnh này, việc nhập một mô-đun sẽ an toàn hơn là nhập các đối tượng từ nó Hai mô-đun có thể nhập lẫn nhau không?Như đã giải thích trong câu trả lời của tôi, các mô-đun có thể nhập lẫn nhau , nhưng nếu bạn cần làm điều đó, bạn có thể muốn .
Một mô-đun có thể tự nhập Python không?Không cần mô-đun tự nhập . Một mô-đun tự nhập có thể dẫn đến lỗi vì mô-đun có thể ở trạng thái không hoàn chỉnh khi tự nhập.
Bạn có thể nhập hai mô-đun bằng Python không?Nhập nhiều mô-đun
. Nhập khẩu thường phải trên các dòng riêng biệt. Nếu bạn sử dụng from để nhập hàm, biến, lớp, v.v. , như được giải thích tiếp theo, bạn có thể tách chúng bằng dấu phẩy. You can write multiple modules separated by commas after the import statement, but this is not recommended in PEP8. Imports should usually be on separate lines. If you use from to import functions, variables, classes, etc., as explained next, you can separate them with a comma.
2 tập lệnh Python có thể nhập lẫn nhau không?Bạn có thể có mã mà bạn muốn tự chạy và nhập từ các tập lệnh khác. Trong trường hợp đó, thường đáng để cấu trúc lại mã của bạn để bạn chia phần chung thành một mô-đun thư viện. Mặc dù bạn nên tách biệt các tập lệnh và thư viện, nhưng tất cả các tệp Python đều có thể được thực thi và nhập . |