140 likes | 283 Views
SỬ DỤNG MODULE TRONG PYTHON. Định nghĩa. Module là một tập tin chứa các định nghĩa và câu lệnh Python. Tên tập tin là tên của module với đuôi .py. Ví dụ: tạo một tập tin đặt tên là fibo.py def fib (n): a, b = 0, 1 while b < n: print b, a, b = b, a+b
E N D
Định nghĩa Module là một tập tin chứa các định nghĩa và câu lệnh Python. Tên tập tin là tên của module với đuôi .py. Ví dụ: tạo một tập tin đặt tên là fibo.py def fib(n): a, b = 0, 1 while b < n: print b, a, b = b, a+b f=fib
Chạy trình thông dịch Python và tạo một module Main.py với nội dung: from fibo import f #import fibo f(100) Bằng cách này ta sẽ truy cập và sử dụng được module fibo.py. Kết quả của chương trình: 1 1 2 3 5 8 13 21 34 55 89
Mỗi module có một bảng ký hiệu riêng và được dùng như bảng toàn cục đối với mọi hàm được định nghĩa trong module không sợ trùng lặp tên biến. Có thể truy cập vào các biến toàn cục của module tương tự như cách truy cập vào các hàm: modname.itemname. Để nhập tất cả các tên từ một mô-đun: from modname import * 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 (_).
Biên dịch module Tập tin có đuôi.pyc phiên bản đã được biên dịch byte của module .py Tập tin này lưu thời gian thay đổi của phiên bản .py dùng để tạo .pyc. Nội dung của tập tin .pyc không phụ thuộc vào hệ thống, do đó một thư mục module Python có thể được chia xẻ với nhiều máy trên các kiến trúc khác nhau.
Hàm dir: Hàm có sẵn dir() được dùng để tìm các tên được định nghĩa trong một module. Nó trả về một danh sách các chuỗi đã sắp xếp • Module chuẩn __builtin__: liệt kê tên của các hàm và biến có sẵn
Package Package là một cách để cấu trúc vùng tên module của Python bằng cách dùng ``tên module có chấm''.
Ví dụ: thiết kế một tập hợp các modules (package) nhằm xử lý các tập tin và dữ liệu âm thanh.
Khi nhập một gói, Python tìm trong các thư mục từ sys.path để tìm thư mục con của gói. • Biến sys.path là một danh sách các chuỗi quyết định đường dẫn tìm kiếm các mô-đun của trình thông dịch. Nó được khởi tạo theo đường dẫn mặc định từ biến môi trường PYTHONPATH, hoặc từ một giá trị có sẵn nếu PYTHONPATH không được thiết lập. Có thể sửa nó bằng cách dùng các công cụ trên danh sách: >>> import sys >>> sys.path.append('/ufs/guido/lib/python')
Các tập tin __init__.py là cần thiết để cho Python biết các thư mục chứa các gói. • Sử dụng package: • import Sound.Effect.Echo: nạp module con Sound.Effect.Echo. Nó phải được tham chiếu bằng tên đầy đủ: Sound.Effect.Echo.echofilter(input, output, delay=0.7, atten=4) • from Sound.Effect import Echo: nạp module con Echo, và làm cho nó có thể được truy cập mà không cần phần tên gói: Echo.echofilter(input, output, delay=0.7, atten=4) • from Sound.Effect.Echo import echofilter: nạp module con Echo, nhưng nó làm hàm echofilter() có thể được sử dụng trực tiếp: echofilter(input, output, delay=0.7, atten=4).
Nhập * từ một gói Ví dụ, tập tin Sounds/Filter/__init__.py có thể chứa đoạn mã sau: __all__=["Equalizer", "Karaoke", "Vocoder"] Khi đó câu lệnh from Sound.Filter import * sẽ nhập ba module được chỉ định từ gói Sound.Filter
Tham chiếu nội trong package Hai module trong cùng một gói có thể import trực tiếp lẫn nhau. Ví dụ: module Surround có thể đơn giản dùng import Echo hay from Echo import echofilter. Khi các gói được cấu trúc thành các gói con, không có đường tắt để tham chiếu tới các module con của các gói kế cận - tên đầy đủ của gói con phải được chỉ định. Ví dụ, nếu module Sound.Filter.Vocoder cần dùng module Echo trong gói Sound.Effect, có thể dùng from Sound.Effect import Echo.