Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c1a614b

Browse files
committed
Update 6.2
1 parent fecec58 commit c1a614b

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

6.-modules.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ def fib2 (n): # trả về dãy Fibonacci đến n
2626
return result
2727
```
2828

29-
Bây giờ vào trình thông dịch Python và import mô-đun này bằng lệnh sau: & gt; & gt; & gt;
29+
Bây giờ vào trình thông dịch Python và import mô-đun này bằng lệnh sau: >>>
3030

3131
```text
3232
>>> import fibo
3333
```
3434

35-
Chỗ này không đưa tên của các hàm được định nghĩa trong `fibo` trực tiếp vào trong bảng ký hiệu hiện tại; nó chỉ đưa tên mô-đun 'fibo` thôi. Sau đó sử dụng tên mô-đun, bạn có thể truy cập các hàm: & gt; & gt; & gt;
35+
Chỗ này không đưa tên của các hàm được định nghĩa trong `fibo` trực tiếp vào trong bảng ký hiệu hiện tại; nó chỉ đưa tên mô-đun 'fibo` thôi. Sau đó sử dụng tên mô-đun, bạn có thể truy cập các hàm: >>>
3636

3737
```text
3838
>>> fibo.fib (1000)
@@ -43,7 +43,7 @@ Chỗ này không đưa tên của các hàm được định nghĩa trong `fibo
4343
'fibo'
4444
```
4545

46-
Nếu bạn định sử dụng hàm thường xuyên, bạn có thể gán nó cho một tên cục bộ: & gt; & gt; & gt;
46+
Nếu bạn định sử dụng hàm thường xuyên, bạn có thể gán nó cho một tên cục bộ: >>>
4747

4848
```text
4949
>>> fib = fibo.fib
@@ -59,7 +59,7 @@ Mỗi mô-đun có bảng kí hiệu (hàm, biến, ..etc - symbol) riêng của
5959

6060
Mô-đun còn có thể import các mô-đun khác. Có một thói quen nhưng không bắt buộc, đó là đặt tất cả câu lệnh [`import`] (https://docs.python.org/3/reference/simple_stmts.html#import) ở đầu mô-đun \ (hoặc script, hoặc tương tự \). Các tên mô-đun đã import được đặt trong bảng ký hiệu toàn cục của mô-đun đang được import vào.
6161

62-
Có một biến thể của câu lệnh [`import`] (https://docs.python.org/3/reference/simple_stmts.html#import) để nhập tên từ mô-đun trực tiếp vào bảng biểu tượng của mô-đun import. Ví dụ: & gt; & gt; & gt;
62+
Có một biến thể của câu lệnh [`import`] (https://docs.python.org/3/reference/simple_stmts.html#import) để nhập tên từ mô-đun trực tiếp vào bảng biểu tượng của mô-đun import. Ví dụ: >>>
6363

6464
```text
6565
>>> from fibo import fib, fib2
@@ -69,7 +69,7 @@ Có một biến thể của câu lệnh [`import`] (https://docs.python.org/3/r
6969

7070
Cách này không đưa tên mô-đun vào những thứ được import vào bảng symbol cục bộ \ (ví dụ, trong ví dụ, `fibo` không được sẽ không được thêm vào bảng \).
7171

72-
Thậm chí còn có một biến thể để import tất cả các tên mà mô-đun đã định nghĩa nữa: & gt; & gt; & gt;
72+
Thậm chí còn có một biến thể để import tất cả các tên mà mô-đun đã định nghĩa nữa: >>>
7373

7474
```text
7575
>>> from fibo import *
@@ -81,7 +81,7 @@ Thậm chí còn có một biến thể để import tất cả các tên mà m
8181

8282
Lưu ý rằng nói chung, việc import sử dụng `*` từ một mô-đun hoặc gói được không được khuyến khích, vì nó làm cho code trở nên khó đọc. Tuy nhiên, bạn có thể sử dụng nó để đỡ phải gõ nhiều khi làm việc ở chế độ tương tác.
8383

84-
Nếu tên mô-đun được theo sau bởi [`as`] (https://docs.python.org/3/reference/compound_stmts.html#as), thì tên phía sau [` as`] (https: // docs. python.org/3/reference/compound_stmts.html#as) được liên kết trực tiếp với mô-đun đã nhập. & gt; & gt; & gt;
84+
Nếu tên mô-đun được theo sau bởi [`as`] (https://docs.python.org/3/reference/compound_stmts.html#as), thì tên phía sau [` as`] (https: // docs. python.org/3/reference/compound_stmts.html#as) được liên kết trực tiếp với mô-đun đã nhập. >>>
8585

8686
```text
8787
>>> import fibo như fib
@@ -91,7 +91,7 @@ Nếu tên mô-đun được theo sau bởi [`as`] (https://docs.python.org/3/re
9191

9292
Điều này là để import các mô-đun như cách mà `import fibo` làm, chỉ có sự khác biệt duy nhất giờ có một cái tên là ` fib` được định nghĩa thôi.
9393

94-
Nó cũng có thể dùng được khi sử dụng [`from`] (https://docs.python.org/3/reference/simple_stmts.html#from) với các tác dụng tương tự: & gt; & gt; & gt;
94+
Nó cũng có thể dùng được khi sử dụng [`from`] (https://docs.python.org/3/reference/simple_stmts.html#from) với các tác dụng tương tự: >>>
9595

9696
```text
9797
>>> từ fibo import fib là fibonacci
@@ -126,7 +126,7 @@ $ python fibo.py 50
126126
1 1 2 3 5 8 13 21 34
127127
```
128128

129-
Nếu mô-đun được import, thì code sẽ không chạy: & gt; & gt; & gt;
129+
Nếu mô-đun được import, thì code sẽ không chạy: >>>
130130

131131
```text
132132
>>> import fibo
@@ -145,28 +145,28 @@ Khi một mô-đun có tên là `spam` được import, đầu tiên trình thô
145145

146146
Chú thích
147147

148-
Trên các hệ thống file hỗ trợ các liên kết tượng trưng (liên kết mềm, symlinks), ​​thư mục chứa script đầu vào được sau khi liên kết được truy ra. Nói cách khác, thư mục chứa liên kết tượng trưng ** không ** được thêm vào đường dẫn tìm kiếm mô-đun.
148+
Trên các hệ thống file hỗ trợ các liên kết tượng trưng (liên kết mềm, symlinks), ​​thư mục chứa script đầu vào được sau khi liên kết được truy ra. Nói cách khác, thư mục chứa liên kết tượng trưng **không** được thêm vào đường dẫn tìm kiếm mô-đun.
149149

150150
Sau khi khởi tạo, các chương trình Python có thể sửa đổi [`sys.path`] (https://docs.python.org/3/library/sys.html#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 load vào, chứ không phải mô-đun cùng tên trong thư mục thư viện. Đây là lỗi trừ khi thay thế được dự định. Xem phần [Mô-đun Chuẩn] (https://docs.python.org/3/tutorial/modules.html#tut-standardmodules) để biết thêm thông tin.
151151

152152
#### 6.1.3. Các file Python được "biên dịch"
153153

154-
Để tăng tốc độ tải các mô-đun, Python lưu trữ (caches) một bản đã được biên dịch của từng mô-đun trong thư mục `__pycache__` dưới tên` module.`_`version`_`.pyc`, trong đó "version" sẽ là định dạng của file được biên dịch; nó cũng thường chứa số phiên bản Python nữa. Ví dụ, trong CPython 3.3, phiên bản được biên dịch của spam.py sẽ được lưu trữ dưới dạng `__pycache __ / spam.cpython-33.pyc`. Quy ước đặt tên này cho phép các mô-đun được biên dịch từ các bản phát hành khác nhau và các phiên bản Python khác nhau cùng tồn tại.
154+
Để tăng tốc độ tải các mô-đun, Python lưu trữ (caches) một bản đã được biên dịch của từng mô-đun trong thư mục `__pycache__` dưới tên` module.`_`version`_`.pyc`, trong đó "version" sẽ là định dạng của file được biên dịch; nó cũng thường chứa số phiên bản Python nữa. Ví dụ, trong CPython 3.3, phiên bản được biên dịch của spam.py sẽ được lưu trữ dưới dạng `__pycache __/ spam.cpython-33.pyc`. Quy ước đặt tên này cho phép các mô-đun được biên dịch từ các bản phát hành khác nhau và các phiên bản Python khác nhau cùng tồn tại.
155155

156-
Python kiểm tra ngày sửa đổi của nguồn so với phiên bản đã biên dịch để xem nó có bị cũ và cần được biên dịch lại hay không. Đây là một quá trình hoàn toàn tự động. Ngoài ra, các mô đun được biên dịch là độc lập với nền tảng, do đó cùng một thư viện có thể được chia sẻ giữa các hệ thống với các kiến ​​trúc khác nhau.
156+
Python kiểm tra ngày sửa đổi của nguồn so với phiên bản đã biên dịch để xem nó có bị cũ và cần được biên dịch lại hay không. Đây là một quá trình hoàn toàn tự động. Thêm nữa, các mô đun được biên dịch là độc lập với nền tảng, do đó cùng một thư viện có thể được chia sẻ giữa các hệ thống với các kiến ​​trúc khác nhau.
157157

158-
Python không kiểm tra cache trong hai trường hợp. Đầu tiên, nó luôn biên dịch lại và không lưu trữ kết quả cho mô đun được tải trực tiếp từ dòng lệnh. Thứ hai, nó không kiểm tra cache nếu không có module nguồn. Để hỗ trợ phân phối không nguồn \ (chỉ biên dịch \), mô đun được biên dịch phải nằm trong thư mục nguồn và không phải là một mô-đun nguồn.
158+
Python không kiểm tra cache trong hai trường hợp sau. Đầu tiên, nó luôn biên dịch lại và không lưu trữ lại kết quả cho mô đun được tải trực tiếp từ dòng lệnh. Thứ hai, nó không kiểm tra cache nếu không có mô đun nguồn. Để hỗ trợ phân phối không nguồn \(chỉ biên dịch \), mô đun được biên dịch phải nằm trong thư mục nguồn và không phải là một mô-đun nguồn.
159159

160-
Một số mẹo cho các chuyên gia:
160+
Một số mẹo dành cho các chuyên gia:
161161

162-
* Bạn có thể sử dụng [`-O`] (https://docs.python.org/3/using/cmdline.html#cmdoption-o) hoặc [` -OO`] (https: //docs.python. org / 3 / using / cmdline.html # cmdoption-oo) chuyển đổi trên lệnh Python để giảm kích thước của một mô-đun được biên dịch. Nút `-O` loại bỏ các câu lệnh khẳng định, công tắc` -OO` loại bỏ cả hai câu lệnh khẳng định và \ _ \ _ doc \ _ \ _. Vì một số chương trình có thể dựa vào những tính năng này, bạn chỉ nên sử dụng tùy chọn này nếu bạn biết mình đang làm gì. Mô-đun "Tối ưu hóa" có thẻ `opt-` và thường nhỏ hơn. Các bản phát hành trong tương lai có thể thay đổi tác động của tối ưu hóa.
163-
* Chương trình không chạy nhanh hơn khi đọc từ tập tin `.pyc` hơn khi đọc từ tập tin` .py`; điều duy nhất nhanh hơn về các file `.pyc` là tốc độ tải chúng.
164-
* Module [`compileall`] (https://docs.python.org/3/library/compileall.html#module-compileall) có thể tạo các file .pyc cho tất cả các mô-đun trong một thư mục.
162+
* Bạn có thể sử dụng tham số [`-O`] (https://docs.python.org/3/using/cmdline.html#cmdoption-o) hoặc [` -OO`] (https: //docs.python.org/3/using/cmdline.html#cmdoption-oo) trên lệnh Python để giảm kích thước của một mô-đun được biên dịch. Tham số dòng lệnh `-O` loại bỏ các câu lệnh kiểm tra điều kiện (assert), tham số dòng lệnh ` -OO` loại bỏ cả các câu lệnh kiểm tra điều kiện (assert) và các đoạn \_\_doc\_\_. Vì một số chương trình có thể dựa vào những tính năng có sẵn này, bạn chỉ nên sử dụng tùy chọn này nếu bạn biết mình đang làm gì. Mô-đun được "Tối ưu hóa" sẽ có thẻ dạng `opt-` và thường nhỏ hơn. Các bản phát hành trong tương lai có thể thay đổi tác động của việc tối ưu hóa.
163+
* Chương trình không chạy nhanh hơn khi đọc từ tập tin `.pyc` khi so sánh với khi nó được đọc từ tập tin` .py`; điều duy nhất nhanh hơn về các file `.pyc` là tốc độ tải chúng lên bộ nhớ.
164+
* Các module sử dụng [`compileall`] (https://docs.python.org/3/library/compileall.html#module-compileall) có thể tạo các file .pyc cho tất cả các mô-đun trong một thư mục.
165165
* Có thêm chi tiết về quy trình này, bao gồm biểu đồ lưu lượng của các quyết định, trong PEP 3147.
166166

167-
### 6.2. -đun chuẩn
167+
### 6.2. Các mô-đun chuẩn
168168

169-
Python đi kèm với một thư viện các mô-đun chuẩn, được mô tả trong một tài liệu riêng biệt, Tham khảo Thư viện Python \ ("Tham khảo Thư viện" sau đây \). Một số mô-đun được tích hợp vào trình thông dịch; chúng cung cấp quyền truy cập vào các hoạt động không phải là một phần cốt lõi của ngôn ngữ nhưng vẫn được tích hợp sẵn, hoặc để có hiệu quả hoặc cung cấp quyền truy cập vào các nguyên bản của hệ điều hành như các cuộc gọi hệ thống. Tập hợp các mô-đun như vậy là một tùy chọn cấu hình cũng phụ thuộc vào nền tảng cơ bản. Ví dụ, mô-đun [`winreg`] (https://docs.python.org/3/library/winreg.html#module-winreg) chỉ được cung cấp trên các hệ thống Windows. Một mô-đun đặc biệt đáng chú ý: [`sys`] (https://docs.python.org/3/library/sys.html#module-sys), được xây dựng trong mọi trình thông dịch Python. Các biến `sys.ps1` và` sys.ps2` xác định các chuỗi được sử dụng làm lời nhắc chính và phụ: & gt; & gt; & gt;
169+
Python đi kèm với một thư viện các mô-đun chuẩn, được mô tả trong một tài liệu riêng biệt, Tham khảo Thư viện Python \("Tham khảo Thư viện" sau đây \). Một số mô-đun được tích hợp vào trình thông dịch; chúng cung cấp quyền truy cập vào các hoạt động không phải là một phần cốt lõi của ngôn ngữ nhưng vẫn được tích hợp sẵn, hoặc để có tác dụng hoặc cung cấp quyền truy cập vào các các phần cơ bản của hệ điều hành như các lời gọi hệ thống chẳng hạn. Tập hợp các mô-đun như vậy là một tùy chọn cấu hình cũng phụ thuộc vào nền tảng bên dưới (mà python chạy). Ví dụ, mô-đun [`winreg`] (https://docs.python.org/3/library/winreg.html#module-winreg) chỉ được cung cấp trên các hệ thống Windows. Một mô-đun đáng chú ý nữa: [`sys`] (https://docs.python.org/3/library/sys.html#module-sys), được xây dựng trong mọi trình thông dịch Python. Các biến `sys.ps1` và` sys.ps2` xác định các chuỗi được sử dụng làm lời nhắc chính và phụ khi giao làm việc với trình biên dịch ở chế độ tương tác: >>>
170170

171171
```text
172172
>>> import sys
@@ -176,13 +176,13 @@ Python đi kèm với một thư viện các mô-đun chuẩn, được mô tả
176176
'... '
177177
>>> sys.ps1 = 'C>'
178178
C> in ('Yuck!')
179-
Kinh quá!
179+
Yuck!
180180
C>
181181
```
182182

183183
Hai biến này chỉ được xác định nếu trình thông dịch ở chế độ tương tác.
184184

185-
Biến `sys.path` là một danh sách các chuỗi xác định đường dẫn tìm kiếm của trình thông dịch cho các mô-đun. được khởi tạo cho một đường dẫn mặc định được lấy từ biến môi trường [`PYTHONPATH`] (https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH), hoặc từ một mặc định dựng sẵn nếu [ `PYTHONPATH`] (https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH) chưa được đặt. Bạn có thể sửa đổi nó bằng cách sử dụng các hoạt động danh sách chuẩn: & gt; & gt; & gt;
185+
Biến `sys.path` là một danh sách các chuỗi xác định đường dẫn tìm kiếm của trình thông dịch cho các mô-đun. Giá trị của nó được khởi tạo từ một đường dẫn mặc định được lấy từ biến môi trường [`PYTHONPATH`] (https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH), hoặc từ một mặc định c sẵn nếu [ `PYTHONPATH`] (https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH) chưa được đặt. Bạn có thể sửa đổi nó bằng cách sử dụng các hoạt động danh sách chuẩn: >>>
186186

187187
```text
188188
>>> import sys

0 commit comments

Comments
 (0)