Skip to content

Latest commit

 

History

History
67 lines (41 loc) · 6.33 KB

16.-appendix.md

File metadata and controls

67 lines (41 loc) · 6.33 KB

16. Appendix

(Phụ lục)

16.1. Chế độ tương tác (Interactive Mode)

16.1.1. Xử lý lỗi (Error Handling)

Khi một lỗi phát sinh, trình thông dịch in ra một thông báo lỗi và một vết stack(stack trace, một báo cáo về những khung stack tại một thời điểm trong khi chương trình đang chạy). Trong chế độ tương tác, nó sau đó trở về cửa sổ chính; khi ngõ vào(input) lấy từ một file, nó thoát ra với trạng thái thoát khác không(nonzero exit) sau khi in ra stack trace. (Ngoại lệ được xử lý bởi một mệnh đề except trong một phát biểu try không phải là lỗi trong trường hợp này). Một số lỗi vô điều kiện không thể tránh được và gây ra nonzero exit; xảy ra khi xuất hiện những mâu thuẫn nội bộ và một vài trường hợp bị đầy bộ nhớ. Tất cả tin nhắn lỗi được ghi vào luồng lỗi chuẩn(standard error stream); ngõ ra bình thường từ những câu lệnh được thực hiện được ghi vào ngõ ra chuẩn(standard output).

Việc gõ ký tự ngắt (thường là Control-C hoặc Delete) trong cửa sổ chính hoặc thứ cấp hủy ngõ vào và trở về cửa sổ chính. [1] Gõ một ngắt trong khi một câu lệnh đang thực hiện tạo ra một ngoại lệ KeyboardInterrupt, điều này có thể được xử lý bằng phát biểu try.

16.1.2. Những đoạn mã(scripts) thực thi

Trên các hệ thống Unix thuộc về BSD, những Python script có thể thực hiện trực tiếp, giống như shell script, bằng cách thêm vào dòng bên dưới

#!/usr/bin/env python3.5

(giả sử trình thông dịch nằm trên đường dẫn PATH của người dùng) từ lúc bắt đầu script và tạo cho file một chế độ thực thi. #! (mở đầu của shebang) phải là hai ký tự đầu tiên của file. Với một số nền tảng, dòng đầu tiên này phải kết thúc theo kiểu Unix ('\n'), không phải kiểu Windows ('\r\n'). Lưu ý rằng kí tự # được sử dụng dể bắt đầu một nhận xét(comment) trong Python.

Script có thể được đưa cho một chế độ thực thi, hoặc sự cho phép, bằng cách sử dụng lệnh chmod.

$ chmod +x myscript.py

Trên các hệ thống Windows, không có khái niệm về "chế độ hoạt động". Bộ cài đặt Python tự động liên kết các file .py với python.exe, vì vậy khi nhấn đúp vào một file Python thì sẽ chạy nó như một script. Phần mở rộng cũng có thể là .pyw, trong trường hợp này giao diện điều khiển thông thường bị loại bỏ.

16.1.3. File khởi động tương tác

Khi bạn sử dụng Python tương tác, sẽ tiện hơn nếu có một vài câu lệnh chuẩn thực hiện mỗi lần trình thông dịch khởi động. Bạn có thể thực hiện chúng bằng việc thiết lập biến môi trường gọi là PYTHONSTARTUP là tên file chứa những dòng lệnh khởi động của bạn. Cái này tương tự tính năng .profile của Unix shells.

File này chỉ được đọc trong những phiên tương tác, không phải khi Python đọc những câu lệnh từ một script, cũng không phải khi /dev/tty được xem như là một nguồn rõ ràng của các câu lệnh ( điều mà ngược lại biểu hiện như một phiên tương tác). Nó được thực thi trong cùng không gian tên nơi những dòng lệnh tương tác được thực thi, vì vậy đối tượng được nó định nghĩa hoặc nhập vào có thể được sử dụng mà không cần đánh giá trong phiên tương tác. Bạn cũng có thể thay đổi cửa sổ(prompt) sys.ps1sys.ps2 trong file này.

Nếu bạn muốn đọc một file khởi động bổ sung từ thư mục hiện tại, bạn có thể lập trình nó trong file khởi động toàn cục sử dụng mã lệnh như if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read()). Nếu bạn muốn sử dụng file khởi động trong một script, bạn phải thực hiện nó một cách rõ ràng trong script:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    with open(filename) as fobj:
        startup_file = fobj.read()
    exec(startup_file)

16.1.4. Những module tùy biến

Python cung cấp hai hook(đại loại như một nơi thường là một giao tiếp được cung cấp trong đoạn mã được đóng gói cho phép bạn thêm vào những tùy chỉnh) cho phép bạn tùy chỉnh nó: sitecustomizeusercustomize.Để hiểu được nó hoạt động như thế nào, trước tiên bạn cần phải tìm được vị trí của thư mục site-packages. Khởi động Python và chạy câu lệnh:

>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.5/site-packages'

Bây giờ bạn có thể tạo một file có tên usercustomize.py trong thư mục đó và để bất cứ thứ gì bạn muốn vào trong đó. Nó sẽ ảnh hưởng tất cả thành phần gọi ra(invocations) của Python, nếu nó không được bắt đầu với lựa chọn -s để vô hiệu import một cách tự động.

sitecustomize hoạt động tương tự, nhưng nó thường được khởi tạo bởi quản trị viên của máy tính trong thư mục toàn cục site-packages, được import vào trước usercustomize. Xem thêm tài liệu của module site để biết thêm chi tiết.

Chú thích:

| [1] | Một vấn đề với gói GNU Readline có thể cản trở điều này. | | --- |