16. Phụ lục

16.1. Chế độ tương tác

Có hai biến thể của REPL tương tác. Trình thông dịch cơ bản cổ điển được hỗ trợ trên tất cả các nền tảng với khả năng kiểm soát dòng tối thiểu.

Kể từ Python 3.13, shell tương tác mới được sử dụng theo mặc định. Cái này hỗ trợ màu sắc, chỉnh sửa nhiều dòng, duyệt lịch sử và chế độ dán. Để tắt màu, hãy xem Kiểm soát màu sắc để biết chi tiết. Các phím chức năng cung cấp một số chức năng bổ sung. F1 vào trình duyệt trợ giúp tương tác pydoc. F2 cho phép duyệt lịch sử dòng lệnh mà không cần đầu ra cũng như lời nhắc >>>.... F3 chuyển sang "chế độ dán", giúp việc dán các khối mã lớn hơn dễ dàng hơn. Nhấn F3 để quay lại lời nhắc thông thường.

Khi sử dụng shell tương tác mới, hãy thoát khỏi shell bằng cách nhập exit hoặc quit. Việc thêm dấu ngoặc đơn sau các lệnh đó là không cần thiết.

Nếu không muốn có shell tương tác mới, nó có thể bị vô hiệu hóa thông qua biến môi trường PYTHON_BASIC_REPL.

16.1.1. Xử lý lỗi

Khi xảy ra lỗi, trình thông dịch sẽ in thông báo lỗi và dấu vết ngăn xếp. Ở chế độ tương tác, nó sẽ quay lại dấu nhắc chính; khi đầu vào đến từ một tệp, nó sẽ thoát với trạng thái thoát khác 0 sau khi in dấu vết ngăn xếp. (Các ngoại lệ được xử lý bởi mệnh đề except trong câu lệnh try không phải là lỗi trong ngữ cảnh này.) Một số lỗi nghiêm trọng vô điều kiện và gây ra lỗi thoát có trạng thái thoát khác 0; điều này áp dụng cho sự không nhất quán bên trong và một số trường hợp hết bộ nhớ. Tất cả các thông báo lỗi đều được ghi vào luồng lỗi tiêu chuẩn; đầu ra bình thường từ các lệnh đã thực hiện được ghi vào đầu ra tiêu chuẩn.

Việc gõ ký tự ngắt (thường là Control-C hoặc Delete) vào dấu nhắc chính hoặc dấu nhắc phụ sẽ hủy dữ liệu nhập và quay lại dấu nhắc chính. [1] Việc gõ một ngắt trong khi lệnh đang thực thi sẽ gây ra ngoại lệ KeyboardInterrupt, ngoại lệ này có thể được xử lý bằng câu lệnh try.

16.1.2. Tập lệnh Python có thể thực thi được

Trên các hệ thống Unix BSD'ish, các tập lệnh Python có thể được thực thi trực tiếp, như tập lệnh shell, bằng cách đặt dòng

#!/usr/bin/env python3

(giả sử rằng trình thông dịch nằm trên PATH của người dùng) ở đầu tập lệnh và cung cấp cho tệp một chế độ thực thi. Zz001zz phải là hai ký tự đầu tiên của tệp. Trên một số nền tảng, dòng đầu tiên này phải kết thúc bằng dòng kết thúc kiểu Unix ('\n'), không phải kết thúc dòng Windows ('\r\n'). Lưu ý rằng ký tự băm hoặc pound, '#', được sử dụng để bắt đầu nhận xét trong Python.

Tập lệnh có thể được cấp chế độ thực thi hoặc quyền bằng cách sử dụng lệnh chmod.

$ chmod +x myscript.py

Trên hệ thống Windows, không có khái niệm về "chế độ thực thi". Trình cài đặt Python tự động liên kết các tệp .py với python.exe để nhấp đúp vào tệp Python sẽ chạy tệp đó dưới dạng tập lệnh. Tiện ích mở rộng cũng có thể là .pyw, trong trường hợp đó, cửa sổ bảng điều khiển thường xuất hiện sẽ bị chặn.

16.1.3. Tệp khởi động tương tác

Khi bạn sử dụng Python một cách tương tác, việc thực thi một số lệnh tiêu chuẩn mỗi khi khởi động trình thông dịch thường rất hữu ích. Bạn có thể thực hiện việc này bằng cách đặt biến môi trường có tên PYTHONSTARTUP thành tên của tệp chứa các lệnh khởi động của bạn. Điều này tương tự như tính năng .profile của Unix shell.

Tệp này chỉ được đọc trong các phiên tương tác, không phải khi Python đọc các lệnh từ tập lệnh và không phải khi /dev/tty được cung cấp dưới dạng nguồn lệnh rõ ràng (nếu không thì hoạt động giống như một phiên tương tác). Nó được thực thi trong cùng một không gian tên nơi các lệnh tương tác được thực thi, do đó các đối tượng mà nó xác định hoặc nhập có thể được sử dụng mà không cần thẩm định trong phiên tương tác. Bạn cũng có thể thay đổi lời nhắc sys.ps1sys.ps2 trong tệp này.

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

hệ điều hành nhập khẩu
tên tệp = os.environ.get('PYTHONSTARTUP')
nếu tên tệp  os.path.isfile (tên tệp):
    với open(filename)  fobj:
        startup_file = fobj.read()
    thực thi (startup_file)

16.1.4. Các mô-đun tùy chỉnh

Python cung cấp hai hook để cho phép bạn tùy chỉnh: sitecustomize và usercustomize. Để xem nó hoạt động như thế nào, trước tiên bạn cần tìm vị trí của thư mục gói trang web của người dùng. Khởi động Python và chạy mã này:

>>> trang web nhập khẩu
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.x/site-packages'

Bây giờ bạn có thể tạo một tệp có tên usercustomize.py trong thư mục đó và đặt bất cứ thứ gì bạn muốn vào đó. Nó sẽ ảnh hưởng đến mọi lệnh gọi Python, trừ khi nó được bắt đầu bằng tùy chọn -s để tắt tính năng nhập tự động.

sitecustomize hoạt động theo cách tương tự, nhưng thường được quản trị viên máy tính tạo trong thư mục gói trang web chung và được nhập trước usercustomize. Xem tài liệu của mô-đun site để biết thêm chi tiết.

Chú thích cuối trang