1. Modules
Ở các phần trước mình đã giới thiệu về cách tạo và sử dụng từ điển (dictionary), và đó cũng là cách để gắn một cái này cho một cái khác. Hay có thể nói rõ hơn như sau, ta sử dụng khóa là 'apple' và bạn có thể lấy nó bằng cách sau:
Nó có thể đơn giản được hiểu là " lấy X từ Y". Và bạn hãy giữ nguyên ý tượng đó nhé. Modules cũng tương tự như vậy. Mình sẽ mô tả việc sử dụng và tạo modules như sau:
Bây h, mình sẽ sử dụng modules mình đã tạo ra và gọi hàm apple của nó nhé:
Các bạn thử thực hiện xem kết quả sẽ thế nào. Quá đơn giản về sử dụng modules đúng không. Tiếp theo mình đặt thêm 1 biến vào trong modules mystuff.py của mình nhé:
Sau đó mình sẽ truy cập đến nó thông qua cách sau:
Ngó xem lại phần từ điển, và bạn hãy so sánh cách sử dụng của modules với từ điển (dictionary), cơ bản là giống nhưng cú pháp là khác nhau. Hãy so sánh:
Điều này có nghĩa chúng ta có một mô hình rất phổ biến trong Python:
2. Mở rộng về modules
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 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ụ:
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:
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 (_).
Bài học hôm nay kết thúc tại đây nhé. Các bạn hãy hoàn thành một vài bài tập nho nhỏ cho nhớ kiến thức:
Ở các phần trước mình đã giới thiệu về cách tạo và sử dụng từ điển (dictionary), và đó cũng là cách để gắn một cái này cho một cái khác. Hay có thể nói rõ hơn như sau, ta sử dụng khóa là 'apple' và bạn có thể lấy nó bằng cách sau:
Code:
>>> mystuff = {'apple': "I AM APPLES!"} >>> print mystuff['apple'] I AM APPLES!
- Tạo một file Python với một vài chức năng (hàm) và một vài biến sử dụng.
- Nhúng chúng vào file bạn muốn sử dụng qua "import".
- Sau đó sử dụng các hàm hoặc biến của file Python đã nhúng vào thông qua phần mở rông "." (dot - chấm).
Code:
def apple(): print "I AM APPLES!"
Code:
import mystuff mystuff.apple()
Code:
def apple(): print "I AM APPLES!" # this is just a variable tangerine = "Living reflection of a dream"
Code:
import mystuff mystuff.apple() print mystuff.tangerine
Code:
mystuff['apple'] # lấy apple từ từ điển mystuff.apple() # lấy hàm apple từ modules mystuff.tangerine # giống như trên, nhưng với biến
- Tạo một khóa = một cái gì đó chứa trong khóa
- Lấy cái gì đó ra bằng cách gọi đến khóa
2. Mở rộng về modules
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 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ụ:
Code:
>>> from fibo import fib, fib2 >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377
Và một biến thể khác để nhập tất cả các tên từ một mô-đun:
Code:
>>> from fibo import * >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377
Bài học hôm nay kết thúc tại đây nhé. Các bạn hãy hoàn thành một vài bài tập nho nhỏ cho nhớ kiến thức:
- Tạo ra một modules có chức năng đổi số thập phân sang nhị phân, sử dụng nó vào một chương trình xây dựng bộ cộng hai số nhị phân nhé.
- Tạo ra một modules có chức năng xác định xem 1 số có phải là số nguyên tố hay không. Sử dụng modules vào trong 1 chương trình nào mà bạn thấy thích.
No comments:
Post a Comment