Một mô-đun Python có thể là một thư mục không?

Trong Python, một mô-đun là một đơn vị mã Python có thể được nhập [tải và sử dụng] bởi mã Python khác. Một mô-đun có thể chứa các định nghĩa [như hàm và hằng số], cũng như các câu lệnh khởi tạo các định nghĩa đó. Khi mã mô-đun được viết, nó có thể được sử dụng lại bởi bất kỳ tập lệnh nào nhập mô-đun

Một cách phổ biến để tạo một mô-đun Python là tạo một tệp có tên tệp kết thúc bằng

import mymodule

mymodule.say_hello[]
3 và viết mã mô-đun vào đó. Nếu chúng tôi sử dụng một phần mở rộng tệp khác trong tên tệp hoặc không có phần mở rộng nào, thì các câu lệnh tiêu chuẩn
import mymodule

mymodule.say_hello[]
4 hiển thị bên dưới sẽ không hoạt động và thay vào đó chúng tôi sẽ phải sử dụng
import mymodule

mymodule.say_hello[]
5, yêu cầu nhiều mã hơn [thông tin thêm bên dưới]

Để minh họa cách sử dụng tiêu chuẩn của

import mymodule

mymodule.say_hello[]
4, giả sử chúng ta tạo một tệp có tên là
import mymodule

mymodule.say_hello[]
7 với định nghĩa hàm sau

def say_hello[]:
   print[ 'Hello, world!' ]

1
2
def say_hello[]:
   print[ 'Hello, world!' ]

Bây giờ mỗi khi chúng tôi muốn viết "Xin chào, thế giới. " lên màn hình từ tập lệnh Python, chúng ta chỉ cần nhập mô-đun này thay vì phải viết lại thông báo. Nó cũng cho phép chúng tôi thay đổi một dòng mã bên trong

import mymodule

mymodule.say_hello[]
7 thay vì trong nhiều tập lệnh khác nhau nếu chúng tôi quyết định thay đổi thông báo mà chúng tôi muốn hiển thị trong tất cả các tập lệnh sử dụng chức năng này

Nhập tệp trong cùng thư mục

Giả sử chúng ta có hai tệp Python trong cùng một thư mục

myscript/

mymodule. py

kịch bản. py

import mymodule

mymodule.say_hello[]
7 chứa hàm
import mymodule

mymodule.say_hello[]
00 mà chúng ta đã thấy ở trên

Để gọi

import mymodule

mymodule.say_hello[]
00 từ bên trong
import mymodule

mymodule.say_hello[]
02, chúng ta có thể viết vào
import mymodule

mymodule.say_hello[]
02

import mymodule

mymodule.say_hello[]

import mymodule

mymodule.say_hello[]
0
import mymodule

mymodule.say_hello[]
6

Tên được sử dụng trong câu lệnh

import mymodule

mymodule.say_hello[]
4 chỉ đơn giản là tên tệp của mô-đun mà không có phần mở rộng
import mymodule

mymodule.say_hello[]
3 ở cuối

Nhập tệp trong thư mục con [Python 3. 3 trở lên]

Python phiên bản 3. 3 trở lên cho phép dễ dàng nhập các mô-đun trong thư mục con của thư mục tập lệnh hiện tại. Nếu bạn đang sử dụng phiên bản Python thấp hơn 3. 3, thay vào đó, bạn có thể làm theo các bước trong Nhập tệp vào một thư mục khác

Giả sử chúng ta di chuyển

import mymodule

mymodule.say_hello[]
7 đến thư mục con có tên là
import mymodule

mymodule.say_hello[]
07

myscript/

thư mục con/

mymodule. py

kịch bản. py

Sau đó, nếu chúng ta đang sử dụng Python 3. 3 hoặc cao hơn, chúng ta có thể viết bằng

import mymodule

mymodule.say_hello[]
02

import mymodule

mymodule.say_hello[]
2

import mymodule

mymodule.say_hello[]
0
import mymodule

mymodule.say_hello[]
4

Trong đường dẫn hệ thống tệp, chúng tôi sẽ tách các thành phần của đường dẫn bằng cách sử dụng

import mymodule

mymodule.say_hello[]
09 [Linux, macOS, v.v. ] hoặc
import mymodule

mymodule.say_hello[]
60 [Windows]. Tuy nhiên, trong câu lệnh
import mymodule

mymodule.say_hello[]
4 của Python, chúng ta phân tách các thành phần đường dẫn bằng dấu chấm [
import mymodule

mymodule.say_hello[]
62]

Chúng ta cũng có thể gán tên ngắn hơn cho mô-đun bằng cách sử dụng câu lệnh

import mymodule

mymodule.say_hello[]
4-
import mymodule

mymodule.say_hello[]
64

import mymodule

mymodule.say_hello[]
1

import mymodule

mymodule.say_hello[]
0
1
2
1

trong đó

import mymodule

mymodule.say_hello[]
65 là bất kỳ tên nào chúng tôi chọn. Chúng ta cũng có thể nhập hàm trực tiếp

1
2
2

import mymodule

mymodule.say_hello[]
0
1
2
4

Điều này hoạt động ngay cả khi có nhiều cấp thư mục con. Ví dụ: nếu chúng ta có cấu trúc thư mục sau

myscript/

chữ cái/

phiên bản thử nghiệm/

mymodule. py

kịch bản. py

chúng ta có thể viết bằng

import mymodule

mymodule.say_hello[]
02

1
2
5

import mymodule

mymodule.say_hello[]
0
1
2
7

Nhập tệp trong một thư mục khác

Bây giờ, giả sử rằng chúng ta di chuyển

import mymodule

mymodule.say_hello[]
7 đến một thư mục nằm ngoài cây thư mục hiện tại

/

chữ cái/

phiên bản thử nghiệm/

mymodule. py

myscript/

kịch bản. py

Theo mặc định, Python tìm kiếm các tệp trong cùng thư mục [bao gồm cả thư mục con] với tệp tập lệnh hiện tại, cũng như ở các vị trí tiêu chuẩn khác được xác định trong

import mymodule

mymodule.say_hello[]
68. Nếu bạn muốn biết những địa điểm này là gì, bạn có thể in ra biến
import mymodule

mymodule.say_hello[]
68 như thế này

1
2
8

1
2
9
def say_hello[]:
   print[ 'Hello, world!' ]
0

Tuy nhiên, nếu tệp chúng tôi muốn nhập hoàn toàn ở một nơi khác, trước tiên chúng tôi sẽ phải cho Python biết nơi cần tìm bằng cách thêm các thư mục tìm kiếm vào

import mymodule

mymodule.say_hello[]
68. Trong ví dụ của chúng tôi, chúng tôi có thể viết bằng
import mymodule

mymodule.say_hello[]
02

def say_hello[]:
   print[ 'Hello, world!' ]
1

def say_hello[]:
   print[ 'Hello, world!' ]
2____73

Lưu ý rằng đường dẫn được thêm vào

import mymodule

mymodule.say_hello[]
68 là đường dẫn tuyệt đối. Nếu chúng tôi đã sử dụng một đường dẫn tương đối, thì đường dẫn đó sẽ phân giải khác nhau dựa trên thư mục mà người dùng đang chạy tập lệnh, không liên quan đến đường dẫn của
import mymodule

mymodule.say_hello[]
02

Để nối thêm một thư mục liên quan đến tệp tập lệnh này, bạn có thể sử dụng

import mymodule

mymodule.say_hello[]
24 để lấy đường dẫn đầy đủ của tập lệnh hiện tại và tạo đường dẫn đầy đủ để nhập từ đó. Trong
import mymodule

mymodule.say_hello[]
02 chúng ta có thể viết

def say_hello[]:
   print[ 'Hello, world!' ]
4

def say_hello[]:
   print[ 'Hello, world!' ]
5
def say_hello[]:
   print[ 'Hello, world!' ]
6

Nhập bất kỳ tệp nào, bao gồm phần mở rộng tệp không phải ____03 [Python 3. 4 trở lên]

Đường dẫn tuyệt đối

Python phiên bản 3. 4 trở lên cung cấp chức năng thông qua thư viện

import mymodule

mymodule.say_hello[]
5 tích hợp cho phép chúng tôi tải bất kỳ tệp nào ở bất kỳ đâu dưới dạng mô-đun Python, ngay cả khi tên tệp của tệp không kết thúc bằng
import mymodule

mymodule.say_hello[]
3 [tệp có thể có phần mở rộng tệp khác hoặc không có phần mở rộng tệp nào cả

Ví dụ: giả sử chúng ta có cấu trúc thư mục sau

/

chữ cái/

phiên bản thử nghiệm/

mymodule

myscript/

kịch bản. py

Lưu ý ở đây rằng tên tệp

import mymodule

mymodule.say_hello[]
29 không có phần mở rộng tệp. Trong trường hợp này, chúng tôi không thể sử dụng câu lệnh
import mymodule

mymodule.say_hello[]
4 đơn giản để nhập tệp đó. Thay vào đó, chúng ta có thể viết bằng
import mymodule

mymodule.say_hello[]
02

def say_hello[]:
   print[ 'Hello, world!' ]
7

def say_hello[]:
   print[ 'Hello, world!' ]
8
def say_hello[]:
   print[ 'Hello, world!' ]
9

Lưu ý rằng đường dẫn được truyền vào

import mymodule

mymodule.say_hello[]
02 là đường dẫn tuyệt đối. Nếu chúng tôi đã sử dụng một đường dẫn tương đối như
import mymodule

mymodule.say_hello[]
03, thì đường dẫn đó sẽ phân giải khác nhau dựa trên thư mục mà người dùng đang chạy tập lệnh, không liên quan đến đường dẫn của
import mymodule

mymodule.say_hello[]
02

Đường dẫn tương đối

Nếu chúng tôi muốn tham chiếu một tệp có liên quan đến đường dẫn của tệp tập lệnh hiện tại, trước tiên chúng tôi có thể sử dụng

import mymodule

mymodule.say_hello[]
24 để lấy đường dẫn của tệp tập lệnh hiện tại, sau đó xây dựng một đường dẫn đầy đủ từ đó

Các mô-đun Python nên được lưu trữ ở đâu?

Khi một gói được cài đặt trên toàn cầu, gói đó sẽ được cung cấp cho tất cả người dùng đăng nhập vào hệ thống. Thông thường, điều đó có nghĩa là Python và tất cả các gói sẽ được cài đặt vào một thư mục trong /usr/local/bin/ đối với hệ thống dựa trên Unix hoặc \Program Files\ đối với Windows.

Thư mục mô-đun Python ở đâu?

Thường nằm trong /lib/site-packages trong thư mục Python của bạn . [Ít nhất, trên Windows. ] Bạn có thể sử dụng sys. đường dẫn để tìm ra những thư mục được tìm kiếm cho các mô-đun.

Mô-đun Python có phải là thư viện không?

Một mô-đun là một tập hợp mã hoặc chức năng sử dụng. phần mở rộng py. Thư viện Python là một tập hợp các mô-đun hoặc gói có liên quan đi kèm với nhau . Nó được sử dụng bởi các lập trình viên cũng như các nhà phát triển.

Chúng tôi có thể nhập một thư mục bằng Python không?

Chúng ta có thể sử dụng sys. path để thêm đường dẫn của thư mục khác mới [thư mục từ nơi chúng tôi muốn nhập các mô-đun] vào đường dẫn hệ thống để Python cũng có thể xem .

Chủ Đề