Con đường có nghĩa là con trăn

Sau khi đã tải Python về máy, thì việc cài đặt Python cũng giống như cài đặt các phần mềm khác như bộ Visual Studio của Microsoft, bạn cứ nhấn next, next và next

Nếu bạn chỉ tải xuống và cài đặt cái này thì có thể biên dịch các tệp python bằng thiết bị đầu cuối. Để sử dụng đầy đủ các tính năng tạo project, tạo file, biên dịch,… bạn nên cài đặt thêm IDE pycharm. You to link after to download. https. //www. phản lực. com/pycharm/tải xuống/

Dưới đây là cách thiết lập đường dẫn cho một số hệ điều hành phổ biến

Thiết lập đường dẫn trên Windows

Để thêm thư mục Python to path for a tool version in Windows, at the command line, you typing path %path%;C. \Python và nhấn Enter. Bạn cũng cần chú ý một số biến môi trường sau

PYTHONPATH. Nó có vai trò như PATH. Biến thể này nói rằng Trình thông dịch của Python là nơi đặt các tệp được nhập vào một chương trình. Nó cũng nên bao gồm thư mục nguồn thư viện và các thư mục chứa mã nguồn của Python

PYTHONSTARTUP. Nó bao gồm đường dẫn của tệp khởi tạo chứa mã nguồn của Python và được thực thi mỗi khi bạn bắt đầu trình thông dịch. Trong Unix, it has name is. pythoncr. py

PYTHONCASEOK. được sử dụng trong Windows để chỉ dẫn cho Python để tìm các kết nối không phân biệt kiểu chữ trong một lệnh quan trọng

PYTHONHOME. Nó là một đường dẫn tìm kiếm thay thế và thường được nhúng trong các thư mục PYTHONSTARTUP hoặc PYTHONPATH

Mặc định là mở tệp văn bản, nếu muốn mở tệp nhị phân [nhị phân] thì thêm

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
7 , ví dụ.
f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
8 ,
f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
9 ,
f1 = open['test.txt', 'r']
data = f1.read[];
0 ,
f1 = open['test.txt', 'r']
data = f1.read[];
1 ,
f1 = open['test.txt', 'r']
data = f1.read[];
2 ,
f1 = open['test.txt', 'r']
data = f1.read[];
3

Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']

Sau khi gọi hàm open[] thành công thì sẽ trả về một đối tượng có thuộc tính.

  • f1 = open['test.txt', 'r']
    data = f1.read[];
    4. Đúng nếu tệp đã đóng
  • f1 = open['test.txt', 'r']
    data = f1.read[];
    5. mode when open file
  • f1 = open['test.txt', 'r']
    data = f1.read[];
    6. tên của tập tin
  • f1 = open['test.txt', 'r']
    data = f1.read[];
    7. cờ đánh dấu softspace when used with function
  • f1 = open['test.txt', 'r']
    data = f1.read[];
    8

Việc làm python lương cạnh tranh

5. 1. 2. Đọc nội dung từ tập tin

Sau khi tệp được mở ở chế độ đọc, thì gọi phương thức

f1 = open['test.txt', 'r']
data = f1.read[];
9 để trả về toàn bộ nội dung của tệp. Ví dụ

f1 = open['test.txt', 'r']
data = f1.read[];

Hàm

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
50 has got a tham số là lượng byte muốn đọc. Nếu không truyền vào thì sẽ đọc hết nội dung của file. Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
5

5. 1. 3. Ghi nội dung vào tập tin

Nếu tệp được mở ở chế độ có thể ghi thì có thể sử dụng phương thức

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
51 để ghi nội dung vào tệp. Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
8

5. 1. 4. Close the open file

Sau khi hoàn tất các thao tác đọc tệp ghi, hãy gọi phương thức

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
52 để đóng tệp đã mở. Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
0

5. 1. 5. Đổi tên tệp

Sử dụng phương thức

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
53 để đổi tên một tệp. Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
2

5. 1. 6. Xóa tệp

Sử dụng phương thức

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
54 để xóa tệp khỏi hệ thống. Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
4

5. 2. Thư mục [Directory]

5. 2. 1. Tạo thư mục

Sử dụng phương thức

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
55 để tạo thư mục. Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
6

5. 2. 2. Delete the directory

Sử dụng phương thức

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
56 để xóa một thư mục. Ví dụ

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
8

5. 2. 3. Đọc thư mục nội dung

Sử dụng phương thức

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
57 để lấy danh sách tập tin, thư mục của thư mục dir . Khi cuộc gọi sẽ trả về một mảng danh sách các tập tin, thư mục. Ví dụ.

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
0

5. 3. Mô-đun
f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
58

Mô-đun

f1 = open['test.txt', 'r']
f2 = open['access_log', 'a+']
58 là một mô-đun có nhiều phương thức hữu ích trong công việc với các tập tin và thư mục, chẳng hạn như

Nếu bạn thoát khỏi trình thông dịch Python và nhập lại, các định nghĩa bạn đã tạo [hàm và biến] sẽ bị mất. Do đó, nếu bạn muốn viết một chương trình dài hơn một chút, tốt hơn hết bạn nên sử dụng trình soạn thảo văn bản để chuẩn bị đầu vào cho trình thông dịch và chạy nó với tệp đó làm đầu vào thay thế. Điều này được gọi là tạo một kịch bản. Khi chương trình của bạn dài hơn, bạn có thể muốn chia nó thành nhiều tệp để bảo trì dễ dàng hơn. Bạn cũng có thể muốn sử dụng một chức năng tiện dụng mà bạn đã viết trong một số chương trình mà không cần sao chép định nghĩa của nó vào từng chương trình

Để hỗ trợ điều này, Python có một cách để đưa các định nghĩa vào một tệp và sử dụng chúng trong một tập lệnh hoặc trong một phiên bản tương tác của trình thông dịch. Một tệp như vậy được gọi là một mô-đun;

Một mô-đun là một tệp chứa các định nghĩa và câu lệnh Python. Tên tệp là tên mô-đun có hậu tố

f1 = open['test.txt', 'r']
data = f1.read[];
37 được thêm vào. Trong một mô-đun, tên của mô-đun [dưới dạng chuỗi] có sẵn dưới dạng giá trị của biến toàn cục
f1 = open['test.txt', 'r']
data = f1.read[];
38. Chẳng hạn, sử dụng trình soạn thảo văn bản yêu thích của bạn để tạo tệp có tên
f1 = open['test.txt', 'r']
data = f1.read[];
39 trong thư mục hiện tại với nội dung sau

f1 = open['test.txt', 'r']
data = f1.read[];
6

Bây giờ hãy nhập trình thông dịch Python và nhập mô-đun này bằng lệnh sau

f1 = open['test.txt', 'r']
data = f1.read[];
7

Điều này không thêm trực tiếp tên của các chức năng được xác định trong

f1 = open['test.txt', 'r']
data = f1.read[];
80 vào hiện tại [xem để biết thêm chi tiết]; . Sử dụng tên mô-đun, bạn có thể truy cập các chức năng

f1 = open['test.txt', 'r']
data = f1.read[];
3

Nếu bạn có ý định sử dụng một chức năng thường xuyên, bạn có thể gán nó cho một tên địa phương

f1 = open['test.txt', 'r']
data = f1.read[];
8

6. 1. Thông tin thêm về mô-đun

Một mô-đun có thể chứa các câu lệnh thực 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 chỉ được thực thi khi tên mô-đun xuất hiện lần đầu tiên trong câu lệnh nhập. [Chúng cũng được chạy nếu tệp được thực thi dưới dạng tập lệnh. ]

Mỗi mô-đun có không gian tên riêng của nó, được sử dụng làm không gian tên chung bởi tất cả các chức năng được xác định 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ề xung đột tình cờ 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 mình đang làm gì, bạn có thể chạm vào các biến toàn cục của mô-đun với cùng một ký hiệu được sử dụng để chỉ các chức năng của nó,

f1 = open['test.txt', 'r']
data = f1.read[];
82

Các mô-đun có thể nhập các mô-đun khác. Thông thường nhưng không bắt buộc phải đặt tất cả các câu lệnh ở đầu mô-đun [hoặc tập lệnh, đối với vấn đề đó]. Tên mô-đun đã nhập, nếu được đặt ở cấp cao nhất của mô-đun [bên ngoài bất kỳ chức năng hoặc lớp nào], sẽ được thêm vào không gian tên chung của mô-đun

Có một biến thể của câu lệnh nhập tên từ mô-đun trực tiếp vào không gian tên của mô-đun nhập. Ví dụ

f1 = open['test.txt', 'r']
data = f1.read[];
3

Điều này không giới thiệu tên mô-đun mà quá trình nhập được thực hiện trong không gian tên cục bộ [vì vậy trong ví dụ,

f1 = open['test.txt', 'r']
data = f1.read[];
80 không được xác định]

Thậm chí còn có một biến thể để nhập tất cả các tên mà mô-đun xác định

f1 = open['test.txt', 'r']
data = f1.read[];
5

Thao tác này nhập tất cả các tên ngoại trừ những tên bắt đầu bằng dấu gạch dưới [

f1 = open['test.txt', 'r']
data = f1.read[];
86]. Trong hầu hết các trường hợp, các lập trình viên Python không sử dụng tiện ích này vì nó đưa một bộ tên không xác định vào trình thông dịch, có thể ẩn một số thứ bạn đã xác định

Lưu ý rằng nói chung, việc nhập

f1 = open['test.txt', 'r']
data = f1.read[];
87 từ một mô-đun hoặc gói không được chấp nhận, vì nó thường gây ra mã khó đọc. Tuy nhiên dùng để tiết kiệm gõ trong các buổi tương tác cũng được

Nếu tên mô-đun được theo sau bởi

f1 = open['test.txt', 'r']
data = f1.read[];
88, thì tên theo sau
f1 = open['test.txt', 'r']
data = f1.read[];
88 được liên kết trực tiếp với mô-đun đã nhập

f1 = open['test.txt', 'r']
data = f1.read[];
0

Điều này đang nhập mô-đun một cách hiệu quả giống như cách mà

f1 = open['test.txt', 'r']
data = f1.read[];
30 sẽ thực hiện, với sự khác biệt duy nhất là nó có sẵn dưới dạng
f1 = open['test.txt', 'r']
data = f1.read[];
31

Nó cũng có thể được sử dụng khi sử dụng với các hiệu ứng tương tự

f1 = open['test.txt', 'r']
data = f1.read[];
3

Ghi chú

Vì lý do hiệu quả, mỗi mô-đun chỉ được nhập một lần cho mỗi phiên phiên dịch. Do đó, nếu bạn thay đổi các mô-đun của mình, bạn phải khởi động lại trình thông dịch – hoặc, nếu đó chỉ là một mô-đun mà bạn muốn kiểm tra tương tác, hãy sử dụng , e. g.

f1 = open['test.txt', 'r']
data = f1.read[];
34

6. 1. 1. Thực thi các mô-đun dưới dạng tập lệnh

Khi bạn chạy một mô-đun Python với

f1 = open['test.txt', 'r']
data = f1.read[];
5

mã trong mô-đun sẽ được thực thi, giống như khi bạn nhập mã, nhưng với _____338 được đặt thành _____436. Điều đó có nghĩa là bằng cách thêm mã này vào cuối mô-đun của bạn

f1 = open['test.txt', 'r']
data = f1.read[];
8

bạn có thể làm cho tệp có thể sử dụng được dưới dạng tập lệnh cũng như mô-đun có thể nhập, bởi vì mã phân tích cú pháp dòng lệnh chỉ chạy nếu mô-đun được thực thi dưới dạng tệp "chính"

f1 = open['test.txt', 'r']
data = f1.read[];
70

Nếu mô-đun được nhập, mã không chạy

f1 = open['test.txt', 'r']
data = f1.read[];
71

Điều này thường được sử dụng để cung cấp giao diện người dùng thuận tiện cho mô-đun hoặc cho mục đích thử nghiệm [chạy mô-đun dưới dạng tập lệnh thực thi bộ thử nghiệm]

6. 1. 2. Đường dẫn tìm kiếm mô-đun

Khi một mô-đun có tên

f1 = open['test.txt', 'r']
data = f1.read[];
37 được nhập, trước tiên, trình thông dịch sẽ tìm kiếm một mô-đun tích hợp có tên đó. Các tên mô-đun này được liệt kê trong. Nếu không tìm thấy, nó sẽ tìm kiếm một tệp có tên
f1 = open['test.txt', 'r']
data = f1.read[];
39 trong danh sách các thư mục được cung cấp bởi biến. được khởi tạo từ những vị trí này

  • Thư mục chứa tập lệnh đầu vào [hoặc thư mục hiện tại khi không có tệp nào được chỉ định]

  • [một danh sách các tên thư mục, có cùng cú pháp với biến hệ vỏ

    f1 = open['test.txt', 'r']
    data = f1.read[];
    53]

  • Mặc định phụ thuộc vào cài đặt [theo quy ước bao gồm thư mục

    f1 = open['test.txt', 'r']
    data = f1.read[];
    54, được xử lý bởi mô-đun]

Thông tin chi tiết có tại

Ghi chú

Trên các hệ thống tệp hỗ trợ liên kết tượng trưng, ​​thư mục chứa tập lệnh đầu vào được tính sau khi liên kết tượng trưng được theo dõi. 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

Sau khi khởi tạo, các chương trình Python có thể sửa đổi. 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 tải thay vì các mô-đun cùng tên trong thư mục thư viện. Đây là một lỗi trừ khi dự định thay thế. Xem phần để biết thêm thông tin

6. 1. 3. Tệp Python “đã biên dịch”

Để tăng tốc độ tải các mô-đun, Python lưu trữ phiên bản đã biên dịch của từng mô-đun trong thư mục

f1 = open['test.txt', 'r']
data = f1.read[];
57 dưới tên
f1 = open['test.txt', 'r']
data = f1.read[];
58, trong đó phiên bản mã hóa định dạng của tệp đã biên dịch; . Ví dụ: trong bản phát hành CPython 3. 3 phiên bản biên dịch của thư rác. py sẽ được lưu vào bộ nhớ cache dưới dạng
f1 = open['test.txt', 'r']
data = f1.read[];
59. 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

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ó lỗi thời và cần biên dịch lại 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 độ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 có kiến ​​trúc khác nhau

Python không kiểm tra bộ đệm 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 bộ đệm nếu không có mô-đun nguồn. Để hỗ trợ phân phối không phải nguồn [chỉ được biên dịch], mô-đun đã biên dịch phải nằm trong thư mục nguồn và không được có mô-đun nguồn

Một số lời khuyên cho các chuyên gia

  • Bạn có thể sử dụng hoặc bật lệnh Python để giảm kích thước của mô-đun đã biên dịch. Công tắc

    f1 = open['test.txt', 'r']
    data = f1.read[];
    00 loại bỏ câu lệnh khẳng định, công tắc
    f1 = open['test.txt', 'r']
    data = f1.read[];
    01 loại bỏ cả câu lệnh khẳng định và chuỗi __doc__. Vì một số chương trình có thể dựa vào việc có sẵn những thứ 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ì. Các mô-đun “Được tối ưu hóa” có thẻ
    f1 = open['test.txt', 'r']
    data = f1.read[];
    04 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

  • Một chương trình không chạy nhanh hơn khi nó được đọc từ tệp

    f1 = open['test.txt', 'r']
    data = f1.read[];
    05 so với khi nó được đọc từ tệp
    f1 = open['test.txt', 'r']
    data = f1.read[];
    37;

  • Mô-đun có thể tạo. pyc cho tất cả các mô-đun trong một thư mục

  • Có nhiều chi tiết hơn về quy trình này, bao gồm biểu đồ dòng chảy của các quyết định, trong PEP 3147

6. 2. Mô-đun tiêu chuẩn

Python đi kèm với một thư viện gồm các mô-đun tiêu chuẩn, được mô tả trong một tài liệu riêng, 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; . 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 chỉ được cung cấp trên hệ thống Windows. Một mô-đun cụ thể đáng được chú ý. , được tích hợp vào mọi trình thông dịch Python. Các biến

f1 = open['test.txt', 'r']
data = f1.read[];
31 và
f1 = open['test.txt', 'r']
data = f1.read[];
32 xác định các chuỗi được sử dụng làm lời nhắc chính và phụ

f1 = open['test.txt', 'r']
data = f1.read[];
72

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

Biến

f1 = open['test.txt', 'r']
data = f1.read[];
50 là 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. Nó được khởi tạo thành đường dẫn mặc định được lấy từ biến môi trường hoặc từ mặc định tích hợp nếu không được đặt. Bạn có thể sửa đổi nó bằng các thao tác danh sách tiêu chuẩn

f1 = open['test.txt', 'r']
data = f1.read[];
73

6. 3. Hàm

Hàm tích hợp được sử dụng để tìm ra tên mà mô-đun xác định. Nó trả về một danh sách các chuỗi được sắp xếp

f1 = open['test.txt', 'r']
data = f1.read[];
74

Không có đối số, liệt kê các tên bạn đã xác định hiện tại

f1 = open['test.txt', 'r']
data = f1.read[];
75

Lưu ý rằng nó liệt kê tất cả các loại tên. biến, mô-đun, hàm, v.v.

không liệt kê tên của các hàm và biến tích hợp. Nếu bạn muốn có một danh sách những thứ đó, chúng được xác định trong mô-đun tiêu chuẩn

f1 = open['test.txt', 'r']
data = f1.read[];
76

6. 4. Gói

Các gói là một cách cấu trúc không gian tên mô-đun của Python bằng cách sử dụng “tên mô-đun chấm”. Ví dụ: tên mô-đun

f1 = open['test.txt', 'r']
data = f1.read[];
51 chỉ định mô-đun con có tên
f1 = open['test.txt', 'r']
data = f1.read[];
52 trong gói có tên
f1 = open['test.txt', 'r']
data = f1.read[];
53. Giống như việc sử dụng các mô-đun giúp tác giả của các mô-đun khác nhau không phải lo lắng về tên biến toàn cục của nhau, việc sử dụng tên mô-đun chấm giúp tác giả của các gói đa mô-đun như NumPy hoặc Gối không phải lo lắng về tên mô-đun của nhau

Giả sử bạn muốn thiết kế một tập hợp các mô-đun [một “gói”] để xử lý thống nhất các tệp âm thanh và dữ liệu âm thanh. Có nhiều định dạng tệp âm thanh khác nhau [ví dụ: thường được nhận dạng bằng phần mở rộng của chúng.

f1 = open['test.txt', 'r']
data = f1.read[];
54,
f1 = open['test.txt', 'r']
data = f1.read[];
55,
f1 = open['test.txt', 'r']
data = f1.read[];
56], vì vậy bạn có thể cần tạo và duy trì bộ sưu tập mô-đun ngày càng tăng để chuyển đổi giữa các định dạng tệp khác nhau. Ngoài ra còn có nhiều thao tác khác nhau mà bạn có thể muốn thực hiện trên dữ liệu âm thanh [chẳng hạn như trộn, thêm tiếng vang, áp dụng chức năng bộ chỉnh âm, tạo hiệu ứng âm thanh nổi nhân tạo], vì vậy, ngoài ra, bạn sẽ viết một luồng mô-đun không bao giờ kết thúc để thực hiện . Đây là cấu trúc có thể có cho gói của bạn [được thể hiện dưới dạng hệ thống tệp phân cấp]

f1 = open['test.txt', 'r']
data = f1.read[];
77

Khi nhập gói, Python tìm kiếm thông qua các thư mục trên

f1 = open['test.txt', 'r']
data = f1.read[];
50 để tìm thư mục con của gói

Các tệp

f1 = open['test.txt', 'r']
data = f1.read[];
58 được yêu cầu để tạo Python xử lý các thư mục chứa tệp dưới dạng các gói. Điều này ngăn các thư mục có tên chung, chẳng hạn như
f1 = open['test.txt', 'r']
data = f1.read[];
59, vô tình ẩn các mô-đun hợp lệ xảy ra sau này trên đường dẫn tìm kiếm mô-đun. Trong trường hợp đơn giản nhất,
f1 = open['test.txt', 'r']
data = f1.read[];
58 chỉ có thể là một tệp trống, nhưng nó cũng có thể thực thi mã khởi tạo cho gói hoặc đặt biến
f1 = open['test.txt', 'r']
data = f1.read[];
81, được mô tả sau

Ví dụ: người dùng gói có thể nhập các mô-đun riêng lẻ từ gói

f1 = open['test.txt', 'r']
data = f1.read[];
78

Điều này tải submodule

f1 = open['test.txt', 'r']
data = f1.read[];
82. Nó phải được tham chiếu với tên đầy đủ của nó

f1 = open['test.txt', 'r']
data = f1.read[];
79

Một cách khác để nhập mô hình con là

f1 = open['test.txt', 'r']
data = f1.read[];
30

Điều này cũng tải mô hình con

f1 = open['test.txt', 'r']
data = f1.read[];
83 và làm cho nó khả dụng mà không cần tiền tố gói, vì vậy nó có thể được sử dụng như sau

f1 = open['test.txt', 'r']
data = f1.read[];
31

Tuy nhiên, một biến thể khác là nhập trực tiếp hàm hoặc biến mong muốn

f1 = open['test.txt', 'r']
data = f1.read[];
32

Một lần nữa, điều này tải mô hình con

f1 = open['test.txt', 'r']
data = f1.read[];
83, nhưng điều này làm cho chức năng của nó
f1 = open['test.txt', 'r']
data = f1.read[];
85 có sẵn trực tiếp

f1 = open['test.txt', 'r']
data = f1.read[];
33

Lưu ý rằng khi sử dụng

f1 = open['test.txt', 'r']
data = f1.read[];
86, mục có thể là mô hình con [hoặc gói con] của gói hoặc một số tên khác được xác định trong gói, như hàm, lớp hoặc biến. Đầu tiên, câu lệnh
f1 = open['test.txt', 'r']
data = f1.read[];
83 kiểm tra xem mục đó có được xác định trong gói hay không; . Nếu nó không tìm thấy nó, một ngoại lệ được đưa ra

Ngược lại, khi sử dụng cú pháp như

f1 = open['test.txt', 'r']
data = f1.read[];
89, mỗi mục trừ mục cuối cùng phải là một gói;

6. 4. 1. Nhập * Từ Gói

Bây giờ điều gì xảy ra khi người dùng viết

f1 = open['test.txt', 'r']
data = f1.read[];
700? . Điều này có thể mất nhiều thời gian và việc nhập các mô-đun con có thể có các tác dụng phụ không mong muốn chỉ xảy ra khi mô-đun con được nhập một cách rõ ràng

Giải pháp duy nhất là tác giả gói cung cấp chỉ mục rõ ràng của gói. Tuyên bố sử dụng quy ước sau. nếu mã

f1 = open['test.txt', 'r']
data = f1.read[];
58 của một gói xác định một danh sách có tên là
f1 = open['test.txt', 'r']
data = f1.read[];
81, thì nó được coi là danh sách các tên mô-đun sẽ được nhập khi gặp phải
f1 = open['test.txt', 'r']
data = f1.read[];
704. Tác giả gói có nhiệm vụ cập nhật danh sách này khi phiên bản mới của gói được phát hành. Tác giả gói cũng có thể quyết định không hỗ trợ nó, nếu họ không thấy việc sử dụng để nhập * từ gói của họ. Ví dụ: tệp
f1 = open['test.txt', 'r']
data = f1.read[];
705 có thể chứa đoạn mã sau

f1 = open['test.txt', 'r']
data = f1.read[];
34

Điều này có nghĩa là

f1 = open['test.txt', 'r']
data = f1.read[];
700 sẽ nhập ba mô hình con có tên của gói
f1 = open['test.txt', 'r']
data = f1.read[];
707

Nếu

f1 = open['test.txt', 'r']
data = f1.read[];
81 không được xác định, câu lệnh
f1 = open['test.txt', 'r']
data = f1.read[];
700 không nhập tất cả các mô hình con từ gói
f1 = open['test.txt', 'r']
data = f1.read[];
707 vào không gian tên hiện tại; . Điều này bao gồm bất kỳ tên nào được xác định [và các mô hình con được tải rõ ràng] bởi
f1 = open['test.txt', 'r']
data = f1.read[];
58. Nó cũng bao gồm bất kỳ mô hình con nào của gói đã được tải rõ ràng bởi các câu lệnh trước đó. Hãy xem xét mã này

f1 = open['test.txt', 'r']
data = f1.read[];
35

Trong ví dụ này, các mô-đun

f1 = open['test.txt', 'r']
data = f1.read[];
83 và
f1 = open['test.txt', 'r']
data = f1.read[];
716 được nhập vào không gian tên hiện tại vì chúng được xác định trong gói
f1 = open['test.txt', 'r']
data = f1.read[];
707 khi câu lệnh
f1 = open['test.txt', 'r']
data = f1.read[];
718 được thực thi. [Điều này cũng hoạt động khi
f1 = open['test.txt', 'r']
data = f1.read[];
81 được xác định. ]

Mặc dù một số mô-đun nhất định được thiết kế để chỉ xuất các tên tuân theo các mẫu nhất định khi bạn sử dụng

f1 = open['test.txt', 'r']
data = f1.read[];
720, nhưng đây vẫn được coi là thông lệ không tốt trong mã sản xuất

Hãy nhớ rằng, không có gì sai khi sử dụng

f1 = open['test.txt', 'r']
data = f1.read[];
721. Trên thực tế, đây là ký hiệu được khuyến nghị trừ khi mô-đun nhập cần sử dụng các mô-đun con có cùng tên từ các gói khác nhau

6. 4. 2. Tham chiếu trong gói

Khi các gói được cấu trúc thành các gói con [như với gói

f1 = open['test.txt', 'r']
data = f1.read[];
722 trong ví dụ], bạn có thể sử dụng nhập khẩu tuyệt đối để chỉ các mô-đun con của các gói anh chị em. Ví dụ: nếu mô-đun
f1 = open['test.txt', 'r']
data = f1.read[];
723 cần sử dụng mô-đun
f1 = open['test.txt', 'r']
data = f1.read[];
83 trong gói
f1 = open['test.txt', 'r']
data = f1.read[];
707, thì có thể sử dụng
f1 = open['test.txt', 'r']
data = f1.read[];
726

Bạn cũng có thể viết nhập khẩu tương đối, với mẫu báo cáo nhập khẩu

f1 = open['test.txt', 'r']
data = f1.read[];
727. Các lần nhập này sử dụng các dấu chấm ở đầu để biểu thị các gói hiện tại và gói gốc liên quan đến quá trình nhập tương đối. Ví dụ, từ mô-đun
f1 = open['test.txt', 'r']
data = f1.read[];
716, bạn có thể sử dụng

f1 = open['test.txt', 'r']
data = f1.read[];
36

Lưu ý rằng nhập tương đối dựa trên tên của mô-đun hiện tại. Vì tên của mô-đun chính luôn là

f1 = open['test.txt', 'r']
data = f1.read[];
36, nên các mô-đun được dùng làm mô-đun chính của ứng dụng Python phải luôn sử dụng nhập khẩu tuyệt đối

6. 4. 3. Gói trong nhiều thư mục

Các gói hỗ trợ thêm một thuộc tính đặc biệt,. Điều này được khởi tạo để trở thành một danh sách chứa tên của thư mục chứa gói

f1 = open['test.txt', 'r']
data = f1.read[];
58 trước khi mã trong tệp đó được thực thi. Biến này có thể được sửa đổi;

Mặc dù tính năng này thường không cần thiết, nhưng nó có thể được sử dụng để mở rộng tập hợp các mô-đun được tìm thấy trong một gói

chú thích

Trên thực tế, các định nghĩa hàm cũng là 'các câu lệnh' được 'thực thi';

Chủ Đề