Mô-đun có thể chứa các hàm, như đã được mô tả, nhưng cũng có các biến thuộc mọi loại [mảng, từ điển, đối tượng, v.v.]
Thí dụ
Lưu mã này vào tệp mymodule.py
người1 = {
"Tên". "John",
"tuổi". 36,
"quốc gia". "Na Uy"
}
Thí dụ
Nhập mô-đun có tên mymodule và truy cập từ điển person1
nhập mymodule
a = mô-đun của tôi. người1["tuổi"]
in[a]
Đặt tên cho một mô-đun
Bạn có thể đặt tên cho tệp mô-đun tùy thích, nhưng nó phải có phần mở rộng tệp là .py
Đổi tên một Module
Bạn có thể tạo bí danh khi nhập mô-đun bằng cách sử dụng từ khóa as
Thí dụ
Tạo bí danh cho mymodule
được gọi là mx
nhập mymodule dưới dạng mx
một = mx. người1["tuổi"]
in[a]
Mô-đun tích hợp
Có một số mô-đun tích hợp sẵn trong Python mà bạn có thể nhập bất cứ khi nào bạn muốn
Thí dụ
Nhập và sử dụng mô-đun platform
nền tảng nhập khẩu
x = nền tảng. hệ thống[]
in[x]
Sử dụng hàm dir[]
Có một hàm tích hợp để liệt kê tất cả các tên hàm [hoặc tên biến] trong một mô-đun. Hàm dir[]
Thí dụ
Liệt kê tất cả các tên được xác định thuộc về mô-đun nền tảng
nền tảng nhập khẩu
x = dir[nền tảng]
in[x]
Ghi chú. Hàm dir[] có thể được sử dụng trên tất cả các mô-đun, kể cả những mô-đun bạn tự tạo
Nhập Từ Mô-đun
Bạn có thể chọn chỉ nhập các bộ phận từ một mô-đun bằng cách sử dụng từ khóa mymodule.py
0
Thí dụ
Mô-đun có tên mymodule
có một chức năng và một từ điển
lời chào chắc chắn [tên]
print["Xin chào," + tên]
người1 = {
"Tên". "John",
"tuổi". 36,
"quốc gia". "Na Uy"
}
Thí dụ
Chỉ nhập từ điển person1 từ mô-đun
từ mymodule nhập person1
in [person1["tuổi"]]
Chạy ví dụ »Ghi chú. Khi nhập sử dụng từ khóa mymodule.py
0, không sử dụng tên mô-đun khi đề cập đến các thành phần trong mô-đun. Thí dụ. mymodule.py
3, không phải mymodule.py
4
Khi một mô-đun được nhập, Python sẽ chạy tất cả mã trong tệp mô-đun. Khi một gói được nhập, Python sẽ chạy tất cả mã trong tệp __init__.py
của gói, nếu tệp đó tồn tại. Tất cả các đối tượng được xác định trong mô-đun hoặc tệp __init__.py
của gói được cung cấp cho nhà nhập khẩu
Khái niệm cơ bản về Python import
và sys.path
Theo tài liệu Python, đây là cách một câu lệnh import
tìm kiếm mô-đun hoặc gói chính xác để nhập
Khi một mô-đun có tên
8 được nhập, trước tiên, trình thông dịch sẽ tìm kiếm một mô-đun tích hợp có tên đó. Nếu không tìm thấy, nó sẽ tìm kiếm một tệp có tênimport pkgutil search_path = ['.'] # set to None to see all modules importable from sys.path all_modules = [x[1] for x in pkgutil.iter_modules[path=search_path]] print[all_modules]
9 trong danh sách các thư mục được cung cấp bởi biếnimport pkgutil search_path = ['.'] # set to None to see all modules importable from sys.path all_modules = [x[1] for x in pkgutil.iter_modules[path=search_path]] print[all_modules]
sys.path
.sys.path
được khởi tạo từ những vị trí này
- Thư mục chứa tập lệnh đầu vào [hoặc thư mục hiện tại khi không có tệp nào được chỉ định]
import
2 [danh sách tên thư mục, có cùng cú pháp với biến hệ vỏ PATH]- Mặc định phụ thuộc vào cài đặt
Sau khi khởi tạo, các chương trình Python có thể sửa đổi
sys.path
. Thư mục chứa tập lệnh đang chạy được đặt ở đầu đường dẫn tìm kiếm, phía trước đường dẫn thư viện chuẩn. Điều này có nghĩa là các tập lệnh trong thư mục đó sẽ được tải thay vì các mô-đun cùng tên trong thư mục thư viện. Nguồn. Trăn và
Về mặt kỹ thuật, tài liệu của Python không đầy đủ. Trình thông dịch sẽ không chỉ tìm một tệp [i. e. , module] tên là
import pkgutil
search_path = ['.'] # set to None to see all modules importable from sys.path
all_modules = [x[1] for x in pkgutil.iter_modules[path=search_path]]
print[all_modules]
9, nó cũng sẽ tìm một thư mục [i. e. , gói] tên là import pkgutil
search_path = ['.'] # set to None to see all modules importable from sys.path
all_modules = [x[1] for x in pkgutil.iter_modules[path=search_path]]
print[all_modules]
8Lưu ý rằng trình thông dịch Python trước tiên tìm kiếm thông qua danh sách các mô-đun tích hợp sẵn, các mô-đun được biên dịch trực tiếp vào trình thông dịch Python. Danh sách các mô-đun tích hợp này phụ thuộc vào cài đặt và có thể được tìm thấy trong import
6 [Python và]. Một số mô-đun thường được tích hợp sẵn bao gồm import
7, import
8, import
9 và sys.path
0, trong số những mô-đun khác. Xem bên dưới để biết danh sách các mô-đun tích hợp sẵn luôn được bao gồm
Không giống như các mô-đun tích hợp sẵn xuất hiện đầu tiên trong đường dẫn tìm kiếm, phần còn lại của các mô-đun trong thư viện chuẩn của Python [không tích hợp sẵn] xuất hiện sau thư mục của tập lệnh hiện tại. Điều này dẫn đến hành vi khó hiểu. có thể “thay thế” một số nhưng không phải tất cả các mô-đun trong thư viện chuẩn của Python. Ví dụ: trên máy tính của tôi [Windows 10, Python 3. 6], mô-đun import
8 là mô-đun tích hợp sẵn, trong khi mô-đun sys.path
2 thì không. Do đó, sys.path
3 trong sys.path
4 sẽ nhập mô-đun import
8 từ thư viện chuẩn, KHÔNG phải tệp sys.path
6 của riêng tôi trong cùng thư mục. Tuy nhiên, sys.path
7 trong sys.path
4 sẽ nhập tệp sys.path
9 của tôi, KHÔNG phải mô-đun sys.path
2 từ thư viện chuẩn
Ngoài ra, nhập Python phân biệt chữ hoa chữ thường. sys.path
1 không giống với sys.path
2
Hàm sys.path
3 [Python và ] có thể được sử dụng để lấy danh sách tất cả các mô-đun có thể nhập từ một đường dẫn nhất định
import pkgutil
search_path = ['.'] # set to None to see all modules importable from sys.path
all_modules = [x[1] for x in pkgutil.iter_modules[path=search_path]]
print[all_modules]
nguồn
Thông tin thêm về sys.path
Để xem nội dung trong sys.path
, hãy chạy phần sau trong trình thông dịch hoặc dưới dạng tập lệnh
Tài liệu của Python cho sys.path
mô tả nó là…
Danh sách các chuỗi chỉ định đường dẫn tìm kiếm cho các mô-đun. Được khởi tạo từ biến môi trường
import
2, cộng với mặc định phụ thuộc vào cài đặtNhư được khởi tạo khi khởi động chương trình, mục đầu tiên của danh sách này,
sys.path
8, là thư mục chứa tập lệnh được sử dụng để gọi trình thông dịch Python. Nếu thư mục tập lệnh không có sẵn [e. g. nếu trình thông dịch được gọi một cách tương tác hoặc nếu tập lệnh được đọc từ đầu vào tiêu chuẩn], thìsys.path
8 là chuỗi trống, điều này sẽ hướng Python tìm kiếm các mô-đun trong thư mục hiện tại trước tiên. Lưu ý rằng thư mục tập lệnh được chèn trước các mục được chèn doimport
2Nguồn. Trăn và
Tài liệu về giao diện dòng lệnh của Python bổ sung thêm phần sau về việc chạy các tập lệnh từ dòng lệnh. Cụ thể, khi chạy __init__.py
1