Page 47 - Python Simple
P. 47
6. Mô-đun http://www.vithon.org/tutorial/2.5/node8.html
Câu lệnh này nhập tất cả mọi tên trừ những tên bắt đầu bằng dấu gạch chân
(_).
6.1.1 Đường dẫn tìm mô-đun
Khi mô-đun tên spam được nhập vào, trình thông dịch sẽ tìm một tập tin tên
spam.py trong thư mục hiện tại, rồi trong danh sách các thư mục được chỉ định
bởi biến môi trường PYTHONPATH. Biến này có cùng cú pháp như là biến môi
trường PATH, cùng chứa một danh sách tên các thư mục. Khi PYTHONPATH
chưa được thiết lập, hoặc khi tập tin không được tìm thấy, việc tìm kiếm sẽ tiếp
tục tìm trong đường dẫn mặc định tùy theo khi cài Python; trên UNIX, đường
dẫn này thường là .:/usr/local/lib/python.
Thật ra, mô-đun được tìm trong danh sách các thư mục chỉ định bởi biến
sys.path đã được thiết lập từ thư mục chứa kịch bản nguồn (hoặc thư mục hiện
tại), PYTHONPATH và các mặc định khi cài đặt. Điều này cho phép các chương
trình Python thay đổi hoặc thay thế đường dẫn tìm mô-đun. Lưu ý rằng vì thư
mục chứa kịch bản đang chạy nằm trong đường dẫn tìm kiếm, tên của kịch bản
nhất thiết phải không trùng với tên các mô-đun chuẩn, nếu không thì Python sẽ
cố sức nạp kịch bản như là một mô-đun khi mô-đun đó được nhập vào. Thông
thường điều này sẽ gây lỗi. Xem mục 6.2, ``Các mô-đun chuẩn,'' để biết thêm
chi tiết.
6.1.2 Các tập tin Python ``đã dịch''
Như một cách quan trọng để tăng tốc quá trình khởi động của các chương trình
ngắn có dùng nhiều mô-đun chuẩn, nếu tập tin có tên spam.pyc tồn tại trong
thư mục mà spam.py được tìm thấy, tập tin này được giả định là phiên bản đã
được ``biên dịch byte'' (byte-compile) của mô-đun spam. Thời gian thay đổi của
phiên bản spam.py dùng để tạo spam.pyc được lưu lại trong spam.pyc, và tập
tin .pyc sẽ bị bỏ qua nếu chúng không khớp nhau.
Thông thường, bạn không cần làm gì cả để tạo tập tin spam.pyc . Khi nào
spam.py được biên dịch thành công, Python sẽ thử ghi phiên bản đã biên dịch
ra spam.pyc. Nếu việc ghi này thất bại thì cũng không có lỗi gì xảy ra; nếu vì lý
do gì đó mà tập tin không được ghi đầy đủ, tập tin spam.pyc sẽ bị đánh dấu là
không hợp lệ và sẽ bị bỏ qua sau này. Nội dung của tập tin spam.pyc không
phụ thuộc vào hệ thống, do đó một thư mục mô-đun Python có thể được chia xẻ
với nhiều máy trên các kiến trúc khác nhau.
Một vài mẹo cho chuyên gia:
Khi trình thông dịch Python được chạy với cờ -O , mã tối ưu được tạo và
lưu trong các tập tin .pyo . Trình tối ưu hóa hiện tại không giúp gì nhiều,
nó chỉ bỏ đi các lệnh assert . Khi -O được dùng, tất cả mã byte
(bytecode) đều được tối ưu; .pyc bị bỏ qua và .py được biên dịch ra mã
byte tối ưu.
3 of 10 08/31/2011 10:26 AM