Page 46 - Python Simple
P. 46
6. Mô-đun http://www.vithon.org/tutorial/2.5/node8.html
ký hiệu (symbol table); nó chỉ nhập tên mô-đun fibo mà thôi. Dùng tên
mô-đun bạn có thể truy cập các hàm:
>>> fibo.fib(1000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibo.fib2(100)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'
Nếu bạn định dùng một hàm thường xuyên, thì bạn có thể gán nó vào một tên
cục bộ:
>>> fib = fibo.fib
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
6.1 Bàn thêm về mô-đun
Mô-đun có thể chứa các câu lệnh khả thi cũng như các định nghĩa hàm. Các
câu lệnh này nhằm mục đích khởi tạo mô-đun. Chúng sẽ chỉ được chạy lần đầu
6.1
mô-đun được nhập ở đâu đó.
Mỗi mô-đun có một bảng ký hiệu riêng của nó và được dùng như bảng toàn cục
đối với mọi hàm được định nghĩa trong mô-đun. Do đó, tác giả của một mô-đun
có thể sử dụng các biến toàn cục trong mô-đun mà không phải lo lắng về việc
trùng lặp với các biến toàn cục của người dùng. Mặt khác, nếu bạn biết bạn
đang làm gì, bạn có thể truy cập vào các biến toàn cục của mô-đun với cùng
một cách dùng để truy cập các hàm của nó. modname.itemname.
Mô-đun có thể nhập các mô-đun khác. Thông thường (nhưng không bắt buộc)
ta hay để tất cả các lệnh import ở đầu một mô-đun (hoặc kịch bản). Các tên của
mô-đun bị nhập được đặt trong bảng ký hiệu toàn cục của mô-đun nhập nó.
Có một biến thể của câu lệnh import để nhập nhiều tên trực tiếp từ một mô-đun
vào trong bảng ký hiệu của mô-đun nhập. Ví dụ:
>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
Câu lệnh này không đưa tên mô-đun bị nhập vào bảng ký hiệu cục bộ (do đó
trong ví dụ này, fibo chưa được định nghĩa)
Và một biến thể khác để nhập tất cả các tên từ một mô-đun:
>>> from fibo import *
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
2 of 10 08/31/2011 10:26 AM