Tôi muốn thực thi tập lệnh python từ tập lệnh bash và tôi muốn lưu trữ đầu ra của tập lệnh python trong một biến
Trong tập lệnh python của tôi, tôi in một số nội dung ra màn hình và cuối cùng tôi trả về một chuỗi có
sys.exit[myString]
Trong tập lệnh bash của tôi, tôi đã làm như sau
outputString=`python myPythonScript arg1 arg2 arg3 `
Nhưng sau đó, khi tôi kiểm tra giá trị của
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
21 với fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
22, tôi nhận được mọi thứ mà tập lệnh Python đã in ra màn hình, nhưng không phải giá trị trả về outputString=`python myPythonScript arg1 arg2 arg3 `
0Làm thế nào tôi nên làm điều này?
CHỈNH SỬA. Tôi cần chuỗi vì nó cho tôi biết vị trí của tệp được tạo bởi tập lệnh Python. tôi muốn làm một cái gì đó như
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
outputString=`python myPythonScript arg1 arg2 arg3 `
1 không có nghĩa là "trả lại chuỗi này". Nếu bạn chuyển một chuỗi tới outputString=`python myPythonScript arg1 arg2 arg3 `
2, thì outputString=`python myPythonScript arg1 arg2 arg3 `
2 sẽ coi chuỗi đó là một thông báo lỗi và nó sẽ ghi chuỗi đó vào outputString=`python myPythonScript arg1 arg2 arg3 `
4. Khái niệm gần nhất với giá trị trả về cho toàn bộ chương trình là trạng thái thoát của nó, phải là số nguyênNếu bạn muốn chụp đầu ra được ghi vào thiết bị lỗi chuẩn, bạn có thể làm điều gì đó như
________số 8Bạn có thể làm điều gì đó tương tự trong tập lệnh bash của mình
output=$[[your command here] 2> &1]
Tuy nhiên, điều này không đảm bảo chỉ thu được giá trị được chuyển đến
outputString=`python myPythonScript arg1 arg2 arg3 `
2. Mọi thứ khác được ghi vào thiết bị lỗi chuẩn cũng sẽ được ghi lại, có thể bao gồm đầu ra ghi nhật ký hoặc dấu vết ngăn xếpthí dụ
kiểm tra. py
outputString=`python myPythonScript arg1 arg2 arg3 `
1t. sh
outputString=`python myPythonScript arg1 arg2 arg3 `
2outputString=`python myPythonScript arg1 arg2 arg3 `
6chỉnh sửa
Không chắc tại sao nhưng trong trường hợp đó, tôi sẽ viết một kịch bản chính và hai kịch bản khác. Trộn python và bash là vô nghĩa trừ khi bạn thực sự cần
Mô-đun này cung cấp quyền truy cập vào một số biến được trình thông dịch sử dụng hoặc duy trì và các chức năng tương tác mạnh với trình thông dịch. Nó luôn luôn có sẵn
sys. abiflagsTrên các hệ thống POSIX nơi Python được xây dựng với tập lệnh
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
23 tiêu chuẩn, tập lệnh này chứa các cờ ABI theo quy định của PEP 3149Đã thay đổi trong phiên bản 3. 8. Cờ mặc định trở thành chuỗi rỗng [cờ
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
24 cho pymalloc đã bị xóa]. Mới trong phiên bản 3. 2
sys. addaudithook[móc]Nối móc có thể gọi vào danh sách móc kiểm tra đang hoạt động cho trình thông dịch [phụ] hiện tại
Khi một sự kiện kiểm tra được đưa ra thông qua hàm, mỗi hook sẽ được gọi theo thứ tự được thêm vào với tên sự kiện và bộ đối số. Các móc gốc được thêm bởi được gọi trước, tiếp theo là các móc được thêm vào trong trình thông dịch [phụ] hiện tại. Sau đó, các hook có thể ghi nhật ký sự kiện, đưa ra một ngoại lệ để hủy bỏ hoạt động hoặc chấm dứt hoàn toàn quy trình
Lưu ý rằng các móc kiểm tra chủ yếu để thu thập thông tin về các hành động nội bộ hoặc không thể quan sát được, cho dù bằng Python hay các thư viện được viết bằng Python. Chúng không phù hợp để triển khai “sandbox”. Cụ thể, mã độc có thể vô hiệu hóa hoặc bỏ qua các hook được thêm vào bằng cách sử dụng chức năng này. Ở mức tối thiểu, bất kỳ hook nhạy cảm về bảo mật nào cũng phải được thêm vào bằng cách sử dụng API C trước khi khởi tạo thời gian chạy và mọi mô-đun cho phép sửa đổi bộ nhớ tùy ý [chẳng hạn như ] phải được xóa hoàn toàn hoặc được giám sát chặt chẽ
Việc gọi sẽ tự đưa ra một sự kiện kiểm tra có tên là
outputString=`python myPythonScript arg1 arg2 arg3 `
44 mà không có đối số. Nếu bất kỳ hook hiện có nào phát sinh ngoại lệ bắt nguồn từ , hook mới sẽ không được thêm vào và ngoại lệ đó sẽ bị chặn. Do đó, người gọi không thể cho rằng hook của họ đã được thêm trừ khi họ kiểm soát tất cả các hook hiện cóXem tất cả các sự kiện do CPython nêu ra và PEP 578 để biết phần thảo luận về thiết kế ban đầu
Mới trong phiên bản 3. 8
Đã thay đổi trong phiên bản 3. 8. 1. Các ngoại lệ bắt nguồn từ but not không còn bị chặn nữa.
Chi tiết triển khai CPython. Khi tính năng theo dõi được bật [xem ], các hook Python chỉ được theo dõi nếu có thể gọi được có thành viên
outputString=`python myPythonScript arg1 arg2 arg3 `
49 được đặt thành giá trị thực. Nếu không, các chức năng theo dõi sẽ bỏ qua hooksys. argvDanh sách các đối số dòng lệnh được chuyển đến tập lệnh Python.
outputString=`python myPythonScript arg1 arg2 arg3 `
60 là tên tập lệnh [nó phụ thuộc vào hệ điều hành cho dù đây có phải là tên đường dẫn đầy đủ hay không]. Nếu lệnh được thực thi bằng cách sử dụng tùy chọn dòng lệnh cho trình thông dịch, thì outputString=`python myPythonScript arg1 arg2 arg3 `
60 được đặt thành chuỗi outputString=`python myPythonScript arg1 arg2 arg3 `
63. Nếu không có tên tập lệnh nào được chuyển tới trình thông dịch Python, thì outputString=`python myPythonScript arg1 arg2 arg3 `
60 là chuỗi rỗngĐể lặp qua đầu vào tiêu chuẩn hoặc danh sách các tệp được cung cấp trên dòng lệnh, hãy xem mô-đun
Xem thêm
Ghi chú
Trên Unix, các đối số dòng lệnh được truyền theo byte từ HĐH. Python giải mã chúng bằng mã hóa hệ thống tệp và trình xử lý lỗi “thay thế”. Khi bạn cần các byte gốc, bạn có thể lấy nó trước
outputString=`python myPythonScript arg1 arg2 arg3 `
67sys. kiểm toán[sự kiện , *args]Tăng sự kiện kiểm tra và kích hoạt mọi móc kiểm tra đang hoạt động. sự kiện là một chuỗi xác định sự kiện và các đối số có thể chứa các đối số tùy chọn với nhiều thông tin hơn về sự kiện. Số lượng và loại đối số cho một sự kiện nhất định được coi là API công khai và ổn định và không nên sửa đổi giữa các lần phát hành
Ví dụ: một sự kiện kiểm toán có tên là
outputString=`python myPythonScript arg1 arg2 arg3 `
68. Sự kiện này có một đối số được gọi là đường dẫn sẽ chứa thư mục làm việc mới được yêu cầusẽ gọi các móc kiểm tra hiện có, chuyển tên sự kiện và đối số, đồng thời sẽ đưa ra lại ngoại lệ đầu tiên từ bất kỳ móc nào. Nói chung, nếu một ngoại lệ được đưa ra, nó sẽ không được xử lý và quá trình này phải được kết thúc càng nhanh càng tốt. Điều này cho phép triển khai móc quyết định cách phản hồi các sự kiện cụ thể. họ chỉ có thể ghi lại sự kiện hoặc hủy bỏ hoạt động bằng cách đưa ra một ngoại lệ
Móc được thêm bằng cách sử dụng các chức năng hoặc
Tương đương bản địa của chức năng này là. Sử dụng hàm riêng được ưu tiên khi có thể
Xem tất cả các sự kiện do CPython nêu ra
Mới trong phiên bản 3. 8
sys. base_exec_prefixĐặt trong khi khởi động Python, trước khi chạy
outputString=`python myPythonScript arg1 arg2 arg3 `
23, thành cùng giá trị với. Nếu không chạy trong a , các giá trị sẽ giữ nguyên; Mới trong phiên bản 3. 3
sys. base_prefixĐặt trong khi khởi động Python, trước khi chạy
outputString=`python myPythonScript arg1 arg2 arg3 `
23, thành cùng giá trị với. Nếu không chạy trong a , các giá trị sẽ giữ nguyên; Mới trong phiên bản 3. 3
sys. thứ tự byteMột chỉ báo về thứ tự byte gốc. Giá trị này sẽ có giá trị
outputString=`python myPythonScript arg1 arg2 arg3 `
67 trên nền tảng big-endian [byte quan trọng nhất đầu tiên] và outputString=`python myPythonScript arg1 arg2 arg3 `
68 trên nền tảng little-endian [byte ít quan trọng nhất đầu tiên]sys. buildin_module_namesMột bộ chuỗi chứa tên của tất cả các mô-đun được biên dịch thành trình thông dịch Python này. [Thông tin này không có sẵn theo bất kỳ cách nào khác -
outputString=`python myPythonScript arg1 arg2 arg3 `
69 chỉ liệt kê các mô-đun đã nhập. ]Xem thêm danh sách
sys. call_tracing[func , args]Gọi
outputString=`python myPythonScript arg1 arg2 arg3 `
91, trong khi theo dõi được kích hoạt. Trạng thái theo dõi được lưu và khôi phục sau đó. Điều này dự định được gọi từ trình gỡ lỗi từ một điểm kiểm tra, để gỡ lỗi đệ quy một số mã khácsys. bản quyềnMột chuỗi chứa bản quyền liên quan đến trình thông dịch Python
sys. _clear_type_cache[]Xóa bộ đệm loại nội bộ. Bộ đệm loại được sử dụng để tăng tốc độ tra cứu thuộc tính và phương thức. Chỉ sử dụng chức năng này để loại bỏ các tham chiếu không cần thiết trong quá trình gỡ lỗi rò rỉ tham chiếu
Chức năng này chỉ nên được sử dụng cho mục đích nội bộ và chuyên dụng
sys. _current_frames[]Trả về một từ điển ánh xạ mã định danh của từng luồng tới khung ngăn xếp trên cùng hiện đang hoạt động trong luồng đó tại thời điểm hàm được gọi. Lưu ý rằng các chức năng trong mô-đun có thể tạo ngăn xếp cuộc gọi với khung như vậy
Điều này hữu ích nhất để gỡ lỗi bế tắc. chức năng này không yêu cầu sự hợp tác của các luồng bị bế tắc và ngăn xếp cuộc gọi của các luồng đó bị đóng băng miễn là chúng vẫn còn bế tắc. Khung được trả về cho một luồng không bị bế tắc có thể không có mối quan hệ nào với hoạt động hiện tại của luồng đó vào thời điểm mã gọi kiểm tra khung
Chức năng này chỉ nên được sử dụng cho mục đích nội bộ và chuyên dụng
Tăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
93 mà không có đối sốsys. _current_exceptions[]Trả về một từ điển ánh xạ mã định danh của từng luồng tới ngoại lệ trên cùng hiện đang hoạt động trong luồng đó tại thời điểm hàm được gọi. Nếu một luồng hiện không xử lý một ngoại lệ, nó sẽ không được đưa vào từ điển kết quả
Điều này hữu ích nhất cho hồ sơ thống kê
Chức năng này chỉ nên được sử dụng cho mục đích nội bộ và chuyên dụng
Tăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
94 mà không có đối sốsys. điểm ngắt[]Chức năng hook này được gọi bằng chức năng tích hợp. Theo mặc định, nó đưa bạn vào trình gỡ lỗi, nhưng nó có thể được đặt thành bất kỳ chức năng nào khác để bạn có thể chọn trình gỡ lỗi nào sẽ được sử dụng
Chữ ký của chức năng này phụ thuộc vào những gì nó gọi. Ví dụ: ràng buộc mặc định [e. g.
outputString=`python myPythonScript arg1 arg2 arg3 `
97] không yêu cầu đối số, nhưng bạn có thể liên kết nó với một hàm yêu cầu đối số bổ sung [vị trí và/hoặc từ khóa]. Hàm outputString=`python myPythonScript arg1 arg2 arg3 `
95 tích hợp chuyển trực tiếp outputString=`python myPythonScript arg1 arg2 arg3 `
99 và fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
250 của nó qua. Bất cứ điều gì fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
251 trả về đều được trả lại từ outputString=`python myPythonScript arg1 arg2 arg3 `
95Việc triển khai mặc định trước tiên sẽ tham khảo biến môi trường. Nếu điều đó được đặt thành
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
254 thì hàm này sẽ trả về ngay lập tức; . e. nó là một no-op. Nếu biến môi trường không được đặt hoặc được đặt thành chuỗi trống, thì outputString=`python myPythonScript arg1 arg2 arg3 `
97 được gọi. Mặt khác, biến này nên đặt tên cho một hàm để chạy, sử dụng danh pháp nhập dấu chấm của Python, e. g. fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
256. Trong trường hợp này, fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
257 sẽ được nhập và mô-đun kết quả phải có tên gọi là fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
258. Điều này được chạy, chuyển vào outputString=`python myPythonScript arg1 arg2 arg3 `
99 và fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
250, và bất kỳ giá trị nào mà fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
258 trả về, thì fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
232 sẽ trả về hàm tích hợp sẵnLưu ý rằng nếu có bất kỳ sự cố nào xảy ra trong khi nhập tên có thể gọi được theo , thì a sẽ được báo cáo và điểm ngắt bị bỏ qua
Cũng lưu ý rằng nếu
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
232 bị ghi đè theo chương trình, sẽ không được tư vấnMới trong phiên bản 3. 7
sys. _debugmallocstats[]In thông tin cấp thấp tới thiết bị lỗi chuẩn về trạng thái cấp phát bộ nhớ của CPython
Nếu Python là [], thì nó cũng thực hiện một số kiểm tra tính nhất quán nội bộ đắt tiền
Mới trong phiên bản 3. 3
Chi tiết triển khai CPython. Hàm này dành riêng cho CPython. Định dạng đầu ra chính xác không được xác định ở đây và có thể thay đổi
sys. dllhandleSố nguyên chỉ định phần xử lý của Python DLL
các cửa sổ
sys. móc hiển thị[giá trị]Nếu giá trị không phải là
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239, hàm này sẽ in fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
240 thành fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
241 và lưu giá trị trong fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
242. Nếu không thể mã hóa fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
240 thành fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
244 bằng trình xử lý lỗi fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
245 [có thể là fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
246], hãy mã hóa nó thành fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
244 bằng trình xử lý lỗi fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
248fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
249 được gọi dựa trên kết quả đánh giá một mục đã nhập trong phiên Python tương tác. Việc hiển thị các giá trị này có thể được tùy chỉnh bằng cách gán một hàm một đối số khác cho fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
249mã giả
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
8Đã thay đổi trong phiên bản 3. 2. Sử dụng trình xử lý lỗi
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
248 trên. sys. dont_write_bytecodeNếu điều này là đúng, Python sẽ không cố ghi các tệp
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
483 khi nhập các mô-đun nguồn. Giá trị này ban đầu được đặt thành fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
484 hoặc fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
485 tùy thuộc vào tùy chọn dòng lệnh và biến môi trường, nhưng bạn có thể tự đặt giá trị này để kiểm soát việc tạo tệp mã bytesys. _emscripten_infoThông tin lưu giữ về môi trường trên nền tảng wasm32-emscripten. Tuple được đặt tên là tạm thời và có thể thay đổi trong tương lai
Thuộc tính
Giải trình
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
488Phiên bản mô tả dưới dạng bộ dữ liệu ints [chính, phụ, vi mô], e. g.
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
489outputString=`python myPythonScript arg1 arg2 arg3 `
400Chuỗi thời gian chạy, e. g. tác nhân người dùng trình duyệt,
outputString=`python myPythonScript arg1 arg2 arg3 `
401 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
402outputString=`python myPythonScript arg1 arg2 arg3 `
403fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
484 nếu Python được biên dịch với sự hỗ trợ của Emscripten pthreadsoutputString=`python myPythonScript arg1 arg2 arg3 `
405fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
484 nếu Python được biên dịch với hỗ trợ bộ nhớ dùng chungEmscripten
Mới trong phiên bản 3. 11
sys. pycache_prefixNếu điều này được đặt [không phải
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239], Python sẽ ghi các tệp bytecode-cache fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
483 vào [và đọc chúng từ] một cây thư mục song song bắt nguồn từ thư mục này, thay vì từ các thư mục outputString=`python myPythonScript arg1 arg2 arg3 `
409 trong cây mã nguồn. Mọi thư mục outputString=`python myPythonScript arg1 arg2 arg3 `
409 trong cây mã nguồn sẽ bị bỏ qua và các tệp fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
483 mới được ghi trong tiền tố pycache. Vì vậy, nếu bạn sử dụng như một bước xây dựng trước, bạn phải đảm bảo rằng bạn chạy nó với cùng một tiền tố pycache [nếu có] mà bạn sẽ sử dụng trong thời gian chạyMột đường dẫn tương đối được giải thích liên quan đến thư mục làm việc hiện tại
Giá trị này ban đầu được đặt dựa trên giá trị của tùy chọn dòng lệnh
outputString=`python myPythonScript arg1 arg2 arg3 `
414 hoặc biến môi trường [dòng lệnh được ưu tiên]. Nếu không được đặt, nó là fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239Mới trong phiên bản 3. 8
sys. ngoại trừ hook[loại , giá trị, traceback]Hàm này in ra một truy nguyên đã cho và ngoại lệ đối với
outputString=`python myPythonScript arg1 arg2 arg3 `
417Khi một ngoại lệ được đưa ra và chưa được xử lý, trình thông dịch sẽ gọi
outputString=`python myPythonScript arg1 arg2 arg3 `
418 với ba đối số, lớp ngoại lệ, thể hiện ngoại lệ và một đối tượng truy nguyên. Trong một phiên tương tác, điều này xảy ra ngay trước khi quyền điều khiển được đưa trở lại dấu nhắc; . Việc xử lý các ngoại lệ cấp cao nhất như vậy có thể được tùy chỉnh bằng cách gán một hàm ba đối số khác cho outputString=`python myPythonScript arg1 arg2 arg3 `
418Tăng sự kiện kiểm toán
outputString=`python myPythonScript arg1 arg2 arg3 `
418 với các đối số outputString=`python myPythonScript arg1 arg2 arg3 `
421, outputString=`python myPythonScript arg1 arg2 arg3 `
422, outputString=`python myPythonScript arg1 arg2 arg3 `
423, outputString=`python myPythonScript arg1 arg2 arg3 `
92 khi xảy ra ngoại lệ chưa được phát hiện. Nếu chưa đặt hook, outputString=`python myPythonScript arg1 arg2 arg3 `
421 có thể là fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239. Nếu bất kỳ hook nào đưa ra một ngoại lệ bắt nguồn từ lệnh gọi hook sẽ bị chặn. Nếu không, ngoại lệ móc kiểm tra sẽ được báo cáo là không thể phát hiện được và outputString=`python myPythonScript arg1 arg2 arg3 `
418 sẽ được gọiXem thêm
Hàm xử lý các ngoại lệ không thể kích hoạt và hàm xử lý ngoại lệ được đưa ra bởi
sys. __breakpointhook__sys. __displayhook__sys. __ngoại trừhook__sys. __unraisablehook__Các đối tượng này chứa các giá trị ban đầu của
outputString=`python myPythonScript arg1 arg2 arg3 `
432, outputString=`python myPythonScript arg1 arg2 arg3 `
433, outputString=`python myPythonScript arg1 arg2 arg3 `
434 và outputString=`python myPythonScript arg1 arg2 arg3 `
435 khi bắt đầu chương trình. Chúng được lưu để ________ 1432, ________ 1433 và ________ 1434, ________ 1435 có thể được khôi phục trong trường hợp chúng tình cờ được thay thế bằng các đối tượng bị hỏng hoặc thay thếMới trong phiên bản 3. 7. __breakpointhook__
Mới trong phiên bản 3. 8. __unraisablehook__
sys. ngoại lệ[]Hàm này, khi được gọi trong khi trình xử lý ngoại lệ đang thực thi [chẳng hạn như mệnh đề
outputString=`python myPythonScript arg1 arg2 arg3 `
440 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
441], trả về trường hợp ngoại lệ đã bị trình xử lý này bắt. Khi các trình xử lý ngoại lệ được lồng vào nhau, chỉ có thể truy cập được ngoại lệ được xử lý bởi trình xử lý trong cùngNếu không có trình xử lý ngoại lệ nào đang thực thi, hàm này trả về
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239Mới trong phiên bản 3. 11
sys. exc_info[]Hàm này trả về biểu diễn kiểu cũ của ngoại lệ được xử lý. Nếu một ngoại lệ
outputString=`python myPythonScript arg1 arg2 arg3 `
443 hiện đang được xử lý [vì vậy sẽ trả về outputString=`python myPythonScript arg1 arg2 arg3 `
443], trả về bộ dữ liệu outputString=`python myPythonScript arg1 arg2 arg3 `
447. Nghĩa là, một bộ chứa loại ngoại lệ [một lớp con của ], bản thân ngoại lệ đó và một thường đóng gói ngăn xếp cuộc gọi tại điểm xảy ra ngoại lệ lần cuốiNếu không có ngoại lệ nào được xử lý ở bất kỳ đâu trên ngăn xếp, thì hàm này trả về một bộ chứa ba giá trị
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239Đã thay đổi trong phiên bản 3. 11. Các trường
outputString=`python myPythonScript arg1 arg2 arg3 `
422 và outputString=`python myPythonScript arg1 arg2 arg3 `
92 hiện được lấy từ outputString=`python myPythonScript arg1 arg2 arg3 `
423 [trường hợp ngoại lệ], do đó, khi một ngoại lệ được sửa đổi trong khi nó đang được xử lý, những thay đổi đó sẽ được phản ánh trong kết quả của các lệnh gọi tiếp theo tới. sys. exec_prefixMột chuỗi cung cấp tiền tố thư mục dành riêng cho trang nơi các tệp Python phụ thuộc vào nền tảng được cài đặt; . Điều này có thể được đặt tại thời điểm xây dựng với đối số
outputString=`python myPythonScript arg1 arg2 arg3 `
455 cho tập lệnh cấu hình. Cụ thể, tất cả các tệp cấu hình [e. g. tệp tiêu đề outputString=`python myPythonScript arg1 arg2 arg3 `
456] được cài đặt trong thư mục outputString=`python myPythonScript arg1 arg2 arg3 `
457 và các mô-đun thư viện dùng chung được cài đặt trong outputString=`python myPythonScript arg1 arg2 arg3 `
458, trong đó X. Y là số phiên bản của Python, ví dụ outputString=`python myPythonScript arg1 arg2 arg3 `
459Ghi chú
Nếu a có hiệu lực, giá trị này sẽ được thay đổi trong
outputString=`python myPythonScript arg1 arg2 arg3 `
23 để trỏ đến môi trường ảo. Giá trị cho bản cài đặt Python sẽ vẫn khả dụng, thông quasys. có thể thực thi đượcMột chuỗi cung cấp đường dẫn tuyệt đối của tệp nhị phân thực thi cho trình thông dịch Python, trên các hệ thống mà điều này hợp lý. Nếu Python không thể truy xuất đường dẫn thực đến tệp thực thi của nó, thì sẽ là một chuỗi trống hoặc
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239sys. thoát[[arg]]Đưa ra một ngoại lệ, báo hiệu ý định thoát khỏi trình thông dịch
Đối số tùy chọn arg có thể là một số nguyên cho biết trạng thái thoát [mặc định là 0] hoặc một loại đối tượng khác. Nếu nó là một số nguyên, số 0 được coi là "kết thúc thành công" và bất kỳ giá trị khác 0 nào được coi là "kết thúc bất thường" bởi shell và những thứ tương tự. Hầu hết các hệ thống yêu cầu nó nằm trong phạm vi 0–127 và nếu không thì sẽ tạo ra kết quả không xác định. Một số hệ thống có quy ước gán ý nghĩa cụ thể cho các mã thoát cụ thể, nhưng chúng thường kém phát triển; . Nếu một loại đối tượng khác được truyền vào, thì
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 tương đương với việc truyền số 0 và bất kỳ đối tượng nào khác được in ra và dẫn đến mã thoát là 1. Đặc biệt, outputString=`python myPythonScript arg1 arg2 arg3 `
467 là cách nhanh chóng để thoát khỏi chương trình khi xảy ra lỗiVì cuối cùng "chỉ" đưa ra một ngoại lệ, nó sẽ chỉ thoát khỏi quy trình khi được gọi từ luồng chính và ngoại lệ không bị chặn. Các hành động dọn dẹp được chỉ định bởi các mệnh đề cuối cùng của câu lệnh được tôn trọng và có thể chặn nỗ lực thoát ở cấp độ bên ngoài
Đã thay đổi trong phiên bản 3. 6. Nếu xảy ra lỗi trong quá trình dọn dẹp sau khi trình thông dịch Python bắt lỗi [chẳng hạn như lỗi xóa dữ liệu được lưu trong bộ đệm trong luồng tiêu chuẩn], thì trạng thái thoát sẽ được thay đổi thành 120.
sys. cờCác cờ hiển thị trạng thái của các cờ dòng lệnh. Các thuộc tính chỉ được đọc
thuộc tính
lá cờ
outputString=`python myPythonScript arg1 arg2 arg3 `
471outputString=`python myPythonScript arg1 arg2 arg3 `
475outputString=`python myPythonScript arg1 arg2 arg3 `
477outputString=`python myPythonScript arg1 arg2 arg3 `
479hoặc
outputString=`python myPythonScript arg1 arg2 arg3 `
484outputString=`python myPythonScript arg1 arg2 arg3 `
486outputString=`python myPythonScript arg1 arg2 arg3 `
488outputString=`python myPythonScript arg1 arg2 arg3 `
490outputString=`python myPythonScript arg1 arg2 arg3 `
492outputString=`python myPythonScript arg1 arg2 arg3 `
494outputString=`python myPythonScript arg1 arg2 arg3 `
496outputString=`python myPythonScript arg1 arg2 arg3 `
498[]
outputString=`python myPythonScript arg1 arg2 arg3 `
600outputString=`python myPythonScript arg1 arg2 arg3 `
602outputString=`python myPythonScript arg1 arg2 arg3 `
604[]
Đã thay đổi trong phiên bản 3. 2. Đã thêm thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
494 cho cờ mới. Mới trong phiên bản 3. 2. 3. Thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
496. Đã thay đổi trong phiên bản 3. 3. Đã xóa thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
609 lỗi thời. Đã thay đổi trong phiên bản 3. 4. Đã thêm thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
477 cho cờ outputString=`python myPythonScript arg1 arg2 arg3 `
477. Đã thay đổi trong phiên bản 3. 7. Đã thêm thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
498 cho cờ mới và thuộc tính outputString=`python myPythonScript arg1 arg2 arg3 `
600 cho cờ outputString=`python myPythonScript arg1 arg2 arg3 `
616 mới. Đã thay đổi trong phiên bản 3. 11. Đã thêm thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
602 cho tùy chọn. Đã thay đổi trong phiên bản 3. 11. Đã thêm thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
604. sys. float_infoMột thông tin đang lưu giữ về kiểu float. Nó chứa thông tin cấp thấp về độ chính xác và biểu diễn bên trong. Các giá trị tương ứng với các hằng số dấu phẩy động khác nhau được xác định trong tệp tiêu đề tiêu chuẩn
outputString=`python myPythonScript arg1 arg2 arg3 `
620 cho ngôn ngữ lập trình 'C'; . 2. 4. 2. 2 của tiêu chuẩn ISO/IEC C năm 1999, 'Đặc điểm của các loại nổi', để biết chi tiếtthuộc tính
trôi nổi. h vĩ mô
giải trình
outputString=`python myPythonScript arg1 arg2 arg3 `
621DBL_EPSILON
sự khác biệt giữa 1. 0 và giá trị nhỏ nhất lớn hơn 1. 0 có thể biểu diễn dưới dạng float
Xem thêm
outputString=`python myPythonScript arg1 arg2 arg3 `
623DBL_DIG
số chữ số thập phân tối đa có thể được biểu diễn trung thực trong một số float;
outputString=`python myPythonScript arg1 arg2 arg3 `
624DBL_MANT_DIG
phao chính xác. số lượng cơ sở-
outputString=`python myPythonScript arg1 arg2 arg3 `
625 chữ số trong ý nghĩa của một số floatDBL_MAX
số float hữu hạn dương có thể biểu diễn lớn nhất
outputString=`python myPythonScript arg1 arg2 arg3 `
627DBL_MAX_EXP
số nguyên tối đa e sao cho
outputString=`python myPythonScript arg1 arg2 arg3 `
628 là số float hữu hạn có thể biểu diễnoutputString=`python myPythonScript arg1 arg2 arg3 `
629DBL_MAX_10_EXP
số nguyên tối đa e sao cho
outputString=`python myPythonScript arg1 arg2 arg3 `
630 nằm trong phạm vi số float hữu hạn có thể biểu diễnDBL_MIN
float chuẩn hóa dương tối thiểu có thể đại diện
Sử dụng để có được số float có thể biểu diễn không chuẩn hóa dương nhỏ nhất
outputString=`python myPythonScript arg1 arg2 arg3 `
633DBL_MIN_EXP
số nguyên e nhỏ nhất sao cho
outputString=`python myPythonScript arg1 arg2 arg3 `
628 là số float chuẩn hóaoutputString=`python myPythonScript arg1 arg2 arg3 `
635DBL_MIN_10_EXP
số nguyên e nhỏ nhất sao cho
outputString=`python myPythonScript arg1 arg2 arg3 `
630 là số float chuẩn hóaoutputString=`python myPythonScript arg1 arg2 arg3 `
625FLT_RADIX
cơ số biểu diễn số mũ
outputString=`python myPythonScript arg1 arg2 arg3 `
638FLT_ROUNDS
hằng số nguyên đại diện cho chế độ làm tròn được sử dụng cho các phép toán số học. Điều này phản ánh giá trị của macro FLT_ROUNDS hệ thống tại thời điểm khởi động trình thông dịch. Xem phần 5. 2. 4. 2. 2 của tiêu chuẩn C99 để giải thích về các giá trị có thể có và ý nghĩa của chúng
Thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
639 cần được giải thích thêm. Nếu outputString=`python myPythonScript arg1 arg2 arg3 `
640 là bất kỳ chuỗi nào đại diện cho một số thập phân có nhiều nhất là outputString=`python myPythonScript arg1 arg2 arg3 `
639 chữ số có nghĩa, thì việc chuyển đổi outputString=`python myPythonScript arg1 arg2 arg3 `
640 thành một số thực và ngược lại sẽ phục hồi một chuỗi đại diện cho cùng một giá trị thập phânoutputString=`python myPythonScript arg1 arg2 arg3 `
4Nhưng đối với các chuỗi có hơn 1639 chữ số có nghĩa, điều này không phải lúc nào cũng đúng
outputString=`python myPythonScript arg1 arg2 arg3 `
6sys. float_repr_styleMột chuỗi cho biết cách hoạt động của hàm đối với số float. Nếu chuỗi có giá trị
outputString=`python myPythonScript arg1 arg2 arg3 `
645 thì đối với số float hữu hạn outputString=`python myPythonScript arg1 arg2 arg3 `
646, outputString=`python myPythonScript arg1 arg2 arg3 `
647 nhằm mục đích tạo ra một chuỗi ngắn có thuộc tính outputString=`python myPythonScript arg1 arg2 arg3 `
648. Đây là hành vi thông thường trong Python 3. 1 trở lên. Mặt khác, outputString=`python myPythonScript arg1 arg2 arg3 `
649 có giá trị outputString=`python myPythonScript arg1 arg2 arg3 `
650 và outputString=`python myPythonScript arg1 arg2 arg3 `
647 hoạt động giống như trong các phiên bản Python trước 3. 1Mới trong phiên bản 3. 1
sys. khối được phân bổ[]Trả về số khối bộ nhớ hiện được cấp phát bởi trình thông dịch, bất kể kích thước của chúng. Chức năng này chủ yếu hữu ích để theo dõi và gỡ lỗi rò rỉ bộ nhớ. Do bộ đệm bên trong của trình thông dịch, kết quả có thể khác nhau giữa các cuộc gọi;
Nếu bản dựng hoặc triển khai Python không thể tính toán thông tin này một cách hợp lý, thay vào đó được phép trả về 0
Mới trong phiên bản 3. 4
sys. getandroidapilevel[]Trả lại phiên bản API thời gian xây dựng của Android dưới dạng số nguyên
Android
Mới trong phiên bản 3. 7
sys. getdefaultencoding[]Trả về tên của mã hóa chuỗi mặc định hiện tại được triển khai Unicode sử dụng
sys. getdlopenflags[]Trả về giá trị hiện tại của cờ được sử dụng cho cuộc gọi
outputString=`python myPythonScript arg1 arg2 arg3 `
655. Có thể tìm thấy tên tượng trưng cho các giá trị cờ trong mô-đun [outputString=`python myPythonScript arg1 arg2 arg3 `
657 hằng số, e. g. ]Unix
sys. lấy mã hệ thống tệp[]Nhận được. mã hóa được sử dụng để chuyển đổi giữa tên tệp Unicode và tên tệp byte. Trình xử lý lỗi hệ thống tập tin được trả về từ
Để có khả năng tương thích tốt nhất, nên sử dụng str cho tên tệp trong mọi trường hợp, mặc dù việc biểu thị tên tệp dưới dạng byte cũng được hỗ trợ. Các chức năng chấp nhận hoặc trả về tên tệp phải hỗ trợ str hoặc byte và chuyển đổi nội bộ thành biểu diễn ưu tiên của hệ thống
và nên được sử dụng để đảm bảo rằng chế độ lỗi và mã hóa chính xác được sử dụng
Được định cấu hình khi khởi động Python bằng hàm
outputString=`python myPythonScript arg1 arg2 arg3 `
662. xem và các thành viên củaĐã thay đổi trong phiên bản 3. 2. kết quả không thể là
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 nữa. Đã thay đổi trong phiên bản 3. 6. Windows không còn được đảm bảo sẽ trả về
outputString=`python myPythonScript arg1 arg2 arg3 `
668. Xem PEP 529 và để biết thêm thông tin. Đã thay đổi trong phiên bản 3. 7. Trả lại
outputString=`python myPythonScript arg1 arg2 arg3 `
670 nếu được bật. sys. getfilesystemencodeerrors[]Nhận được. trình xử lý lỗi được sử dụng để chuyển đổi giữa tên tệp Unicode và tên tệp byte. Mã hóa hệ thống tập tin được trả về từ
và nên được sử dụng để đảm bảo rằng chế độ lỗi và mã hóa chính xác được sử dụng
Được định cấu hình khi khởi động Python bằng hàm
outputString=`python myPythonScript arg1 arg2 arg3 `
662. xem và các thành viên củaMới trong phiên bản 3. 6
sys. get_int_max_str_digits[]Trả về giá trị hiện tại cho. Xem thêm
Mới trong phiên bản 3. 11
sys. getrefcount[đối tượng]Trả về số tham chiếu của đối tượng. Số đếm được trả về thường cao hơn một số so với bạn mong đợi, bởi vì nó bao gồm tham chiếu [tạm thời] làm đối số cho
sys. getrecursionlimit[]Trả về giá trị hiện tại của giới hạn đệ quy, độ sâu tối đa của ngăn xếp trình thông dịch Python. Giới hạn này ngăn đệ quy vô hạn gây tràn ngăn xếp C và làm sập Python. Nó có thể được thiết lập bởi
sys. getsizeof[đối tượng[ , default]]Trả về kích thước của một đối tượng theo byte. Đối tượng có thể là bất kỳ loại đối tượng nào. Tất cả các đối tượng tích hợp sẽ trả về kết quả chính xác, nhưng điều này không nhất thiết phải đúng với các tiện ích mở rộng của bên thứ ba vì nó được triển khai cụ thể
Chỉ tính mức tiêu thụ bộ nhớ được gán trực tiếp cho đối tượng, không phải mức tiêu thụ bộ nhớ của các đối tượng mà nó đề cập đến
Nếu được cung cấp, giá trị mặc định sẽ được trả về nếu đối tượng không cung cấp phương tiện để lấy kích thước. Nếu không a sẽ được nâng lên
gọi phương thức
outputString=`python myPythonScript arg1 arg2 arg3 `
683 của đối tượng và thêm một bộ thu gom rác bổ sung nếu đối tượng được quản lý bởi bộ thu gom rácXem công thức sizeof đệ quy để biết ví dụ về cách sử dụng đệ quy để tìm kích thước của vùng chứa và tất cả nội dung của chúng
sys. getswitchinterval[]Trả về "khoảng thời gian chuyển đổi chủ đề" của trình thông dịch;
Mới trong phiên bản 3. 2
sys. _getframe[[độ sâu]]Trả về một đối tượng khung từ ngăn xếp cuộc gọi. Nếu độ sâu số nguyên tùy chọn được cung cấp, hãy trả về đối tượng khung có nhiều lệnh gọi bên dưới đỉnh ngăn xếp. Nếu đó là sâu hơn ngăn xếp cuộc gọi, được nâng lên. Độ sâu mặc định bằng 0, trả về khung ở đầu ngăn xếp cuộc gọi
Tăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
687 với đối số outputString=`python myPythonScript arg1 arg2 arg3 `
688Chi tiết triển khai CPython. Chức năng này chỉ nên được sử dụng cho mục đích nội bộ và chuyên dụng. Nó không được đảm bảo tồn tại trong tất cả các triển khai của Python
sys. lấy hồ sơ[]Nhận chức năng hồ sơ như được thiết lập bởi
sys. lấy[]Nhận chức năng theo dõi như được thiết lập bởi
Chi tiết triển khai CPython. Chức năng này chỉ dành cho việc triển khai trình gỡ lỗi, trình lược tả, công cụ bảo hiểm và những thứ tương tự. Hành vi của nó là một phần của nền tảng triển khai, chứ không phải là một phần của định nghĩa ngôn ngữ và do đó có thể không có sẵn trong tất cả các triển khai Python
sys. getwindowsversion[]Trả về một bộ có tên mô tả phiên bản Windows hiện đang chạy. Các phần tử được đặt tên là chính, phụ, xây dựng, nền tảng, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type và platform_version. service_pack chứa một chuỗi, platform_version là 3-tuple và tất cả các giá trị khác là số nguyên. Các thành phần cũng có thể được truy cập theo tên, vì vậy
outputString=`python myPythonScript arg1 arg2 arg3 `
692 tương đương với outputString=`python myPythonScript arg1 arg2 arg3 `
693. Để tương thích với các phiên bản trước, chỉ 5 phần tử đầu tiên có thể truy xuất được bằng cách lập chỉ mụcnền tảng sẽ là
outputString=`python myPythonScript arg1 arg2 arg3 `
694product_type có thể là một trong các giá trị sau
Không thay đổi
Nghĩa
outputString=`python myPythonScript arg1 arg2 arg3 `
695Hệ thống là một máy trạm
outputString=`python myPythonScript arg1 arg2 arg3 `
696Hệ thống là một bộ điều khiển miền
outputString=`python myPythonScript arg1 arg2 arg3 `
697Hệ thống là một máy chủ, nhưng không phải là bộ điều khiển miền
Chức năng này bao hàm chức năng Win32
outputString=`python myPythonScript arg1 arg2 arg3 `
698; platform_version trả về phiên bản chính, phiên bản phụ và số bản dựng của hệ điều hành hiện tại, thay vì phiên bản đang được mô phỏng cho quy trình. Nó được thiết kế để sử dụng trong ghi nhật ký hơn là để phát hiện tính năng
Ghi chú
platform_version lấy phiên bản từ kernel32. dll có thể là phiên bản khác với phiên bản hệ điều hành. Vui lòng sử dụng mô-đun để đạt được phiên bản hệ điều hành chính xác
các cửa sổ
Đã thay đổi trong phiên bản 3. 2. Đã thay đổi thành một bộ được đặt tên và thêm service_pack_minor, service_pack_major, suite_mask và product_type.
Đã thay đổi trong phiên bản 3. 6. Đã thêm platform_version
sys. get_asyncgen_hooks[]Trả về một đối tượng asyncgen_hooks, tương tự như một đối tượng có dạng
outputString=`python myPythonScript arg1 arg2 arg3 `
202, trong đó bộ tạo đầu tiên và bộ hoàn thiện dự kiến sẽ là fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 hoặc các hàm lấy một đối số làm đối số và được sử dụng để lên lịch hoàn thiện trình tạo không đồng bộ bằng một vòng lặp sự kiệnMới trong phiên bản 3. 6. Xem PEP 525 để biết thêm chi tiết.
Ghi chú
Chức năng này đã được thêm vào trên cơ sở tạm thời [xem PEP 411 để biết chi tiết. ]
sys. get_coroutine_origin_tracking_depth[]Nhận độ sâu theo dõi nguồn gốc coroutine hiện tại, như được đặt bởi
Mới trong phiên bản 3. 7
Ghi chú
Chức năng này đã được thêm vào trên cơ sở tạm thời [xem PEP 411 để biết chi tiết. ] Chỉ sử dụng nó cho mục đích gỡ lỗi
sys. hash_infoMột tham số đưa ra của việc thực hiện hàm băm số. Để biết thêm chi tiết về băm các loại số, xem
thuộc tính
giải trình
outputString=`python myPythonScript arg1 arg2 arg3 `
205chiều rộng tính bằng bit được sử dụng cho giá trị băm
outputString=`python myPythonScript arg1 arg2 arg3 `
206mô đun nguyên tố P được sử dụng cho sơ đồ băm số
outputString=`python myPythonScript arg1 arg2 arg3 `
207giá trị băm được trả về cho một vô cực dương
outputString=`python myPythonScript arg1 arg2 arg3 `
208[thuộc tính này không còn được sử dụng]
outputString=`python myPythonScript arg1 arg2 arg3 `
209số nhân được sử dụng cho phần ảo của một số phức
outputString=`python myPythonScript arg1 arg2 arg3 `
210tên của thuật toán để băm str, byte và memoryview
outputString=`python myPythonScript arg1 arg2 arg3 `
211kích thước đầu ra bên trong của thuật toán băm
outputString=`python myPythonScript arg1 arg2 arg3 `
212kích thước của khóa hạt giống của thuật toán băm
Mới trong phiên bản 3. 2
Đã thay đổi trong phiên bản 3. 4. Đã thêm thuật toán, hash_bits và seed_bits
sys. phiên bản lục giácSố phiên bản được mã hóa dưới dạng một số nguyên. Điều này được đảm bảo tăng theo từng phiên bản, bao gồm hỗ trợ thích hợp cho các bản phát hành phi sản xuất. Ví dụ: để kiểm tra trình thông dịch Python ít nhất là phiên bản 1. 5. 2, sử dụng
outputString=`python myPythonScript arg1 arg2 arg3 `
2Cái này được gọi là
outputString=`python myPythonScript arg1 arg2 arg3 `
213 vì nó chỉ thực sự có ý nghĩa khi được xem là kết quả của việc chuyển nó sang hàm tích hợp. Có thể được sử dụng để mã hóa cùng một thông tin thân thiện với con người hơnThông tin chi tiết về
outputString=`python myPythonScript arg1 arg2 arg3 `
213 có thể được tìm thấy tạisys. triển khaiMột đối tượng chứa thông tin về việc triển khai trình thông dịch Python hiện đang chạy. Các thuộc tính sau được yêu cầu tồn tại trong tất cả các triển khai Python
tên là định danh của việc triển khai, e. g.
outputString=`python myPythonScript arg1 arg2 arg3 `
217. Chuỗi thực tế được xác định bằng cách triển khai Python, nhưng nó được đảm bảo là chữ thườngphiên bản là một tuple được đặt tên, có cùng định dạng với. Nó đại diện cho phiên bản triển khai Python. Điều này có ý nghĩa khác với phiên bản cụ thể của ngôn ngữ Python mà trình thông dịch hiện đang chạy tuân theo, mà
outputString=`python myPythonScript arg1 arg2 arg3 `
215 đại diện. Ví dụ: đối với PyPy 1. 8 outputString=`python myPythonScript arg1 arg2 arg3 `
220 có thể là outputString=`python myPythonScript arg1 arg2 arg3 `
221, trong khi outputString=`python myPythonScript arg1 arg2 arg3 `
215 sẽ là outputString=`python myPythonScript arg1 arg2 arg3 `
223. Đối với CPython, chúng có cùng giá trị, vì đó là triển khai tham chiếuhexversion là phiên bản triển khai ở định dạng thập lục phân, như
cache_tag là thẻ được máy móc nhập khẩu sử dụng trong tên tệp của các mô-đun được lưu trong bộ nhớ cache. Theo quy ước, nó sẽ là sự kết hợp của tên và phiên bản triển khai, chẳng hạn như
outputString=`python myPythonScript arg1 arg2 arg3 `
225. Tuy nhiên, việc triển khai Python có thể sử dụng một số giá trị khác nếu thích hợp. Nếu outputString=`python myPythonScript arg1 arg2 arg3 `
226 được đặt thành fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239, điều đó cho biết rằng bộ nhớ đệm mô-đun sẽ bị tắtcó thể chứa các thuộc tính bổ sung dành riêng cho việc triển khai Python. Các thuộc tính không chuẩn này phải bắt đầu bằng dấu gạch dưới và không được mô tả ở đây. Bất kể nội dung của nó là gì, sẽ không thay đổi trong quá trình chạy trình thông dịch, cũng như giữa các phiên bản triển khai. [Tuy nhiên, nó có thể thay đổi giữa các phiên bản ngôn ngữ Python. ] Xem PEP 421 để biết thêm thông tin
Mới trong phiên bản 3. 3
Ghi chú
Việc bổ sung các thuộc tính bắt buộc mới phải trải qua quy trình PEP bình thường. Xem PEP 421 để biết thêm thông tin
sys. int_infoA chứa thông tin về biểu diễn số nguyên bên trong của Python. Các thuộc tính chỉ được đọc
Thuộc tính
Giải trình
outputString=`python myPythonScript arg1 arg2 arg3 `
230số bit được giữ trong mỗi chữ số. Số nguyên Python được lưu trữ nội bộ trong cơ sở
outputString=`python myPythonScript arg1 arg2 arg3 `
231outputString=`python myPythonScript arg1 arg2 arg3 `
232kích thước tính bằng byte của loại C được sử dụng để biểu thị một chữ số
outputString=`python myPythonScript arg1 arg2 arg3 `
233giá trị mặc định khi nó không được cấu hình rõ ràng
outputString=`python myPythonScript arg1 arg2 arg3 `
235giá trị khác không nhỏ nhất cho , , hoặc
Mới trong phiên bản 3. 1
Đã thay đổi trong phiên bản 3. 11. Đã thêm
outputString=`python myPythonScript arg1 arg2 arg3 `
233 và outputString=`python myPythonScript arg1 arg2 arg3 `
235. sys. __interactivehook__Khi thuộc tính này tồn tại, giá trị của nó sẽ tự động được gọi [không có đối số] khi trình thông dịch được khởi chạy trong. Điều này được thực hiện sau khi tệp được đọc, để bạn có thể đặt móc này ở đó. mô-đun
Tăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
243 với đối tượng hook làm đối số khi hook được gọi khi khởi độngMới trong phiên bản 3. 4
sys. thực tập sinh[chuỗi]Nhập chuỗi vào bảng các chuỗi “đã được nhập” và trả về chuỗi đã được nhập – là chính chuỗi đó hoặc một bản sao. Việc thực tập các chuỗi rất hữu ích để đạt được một chút hiệu suất khi tra cứu từ điển - nếu các khóa trong từ điển được thực tập và khóa tra cứu được thực tập, thì việc so sánh khóa [sau khi băm] có thể được thực hiện bằng cách so sánh con trỏ thay vì so sánh chuỗi. Thông thường, các tên được sử dụng trong các chương trình Python được tự động thực hiện và các từ điển được sử dụng để giữ các thuộc tính mô-đun, lớp hoặc cá thể có các khóa được thực tập
Chuỗi liên kết không phải là bất tử;
sys. đang_hoàn thiện[]Quay lại nếu trình thông dịch Python là , ngược lại
Mới trong phiên bản 3. 5
sys. last_typesys. last_valuesys. last_tracebackBa biến này không phải lúc nào cũng được xác định; . Mục đích sử dụng của chúng là cho phép người dùng tương tác nhập mô-đun trình gỡ lỗi và tham gia vào quá trình gỡ lỗi sau khi kiểm tra mà không phải thực hiện lại lệnh gây ra lỗi. [Sử dụng điển hình là
outputString=`python myPythonScript arg1 arg2 arg3 `
247 để vào trình gỡ lỗi sau khi chết; xem mô-đun để biết thêm thông tin. ]Ý nghĩa của các biến giống như ý nghĩa của các giá trị trả về ở trên
sys. kích thước tối đaMột số nguyên cho giá trị lớn nhất mà một biến kiểu có thể nhận. Nó thường là
outputString=`python myPythonScript arg1 arg2 arg3 `
251 trên nền tảng 32-bit và outputString=`python myPythonScript arg1 arg2 arg3 `
252 trên nền tảng 64-bitsys. maxunicodeMột số nguyên cho giá trị của điểm mã Unicode lớn nhất, i. e.
outputString=`python myPythonScript arg1 arg2 arg3 `
253 [outputString=`python myPythonScript arg1 arg2 arg3 `
254 ở hệ thập lục phân]Đã thay đổi trong phiên bản 3. 3. Trước PEP 393,
outputString=`python myPythonScript arg1 arg2 arg3 `
255 từng là outputString=`python myPythonScript arg1 arg2 arg3 `
256 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
254, tùy thuộc vào tùy chọn cấu hình chỉ định liệu các ký tự Unicode được lưu dưới dạng UCS-2 hay UCS-4. sys. meta_pathMột danh sách các đối tượng có các phương thức được gọi để xem liệu một trong các đối tượng có thể tìm thấy mô-đun được nhập hay không. Theo mặc định, nó chứa các mục triển khai ngữ nghĩa nhập mặc định của Python. Phương thức được gọi với ít nhất tên tuyệt đối của mô-đun được nhập. Nếu mô-đun được nhập nằm trong một gói, thì thuộc tính của gói gốc được chuyển vào dưới dạng đối số thứ hai. Phương thức trả về a , hoặc
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 nếu không tìm thấy mô-đunXem thêm
Lớp cơ sở trừu tượng xác định giao diện của các đối tượng tìm kiếm trên
Lớp cụ thể sẽ trả về các phiên bản của
Đã thay đổi trong phiên bản 3. 4. đã được giới thiệu trong Python 3. 4, bởi PEP 451. Các phiên bản trước của Python đã tìm kiếm một phương thức gọi là. Điều này vẫn được gọi là dự phòng nếu một mục không có phương thức.
sys. mô-đunĐây là từ điển ánh xạ tên mô-đun tới các mô-đun đã được tải. Điều này có thể được thao tác để buộc tải lại các mô-đun và các thủ thuật khác. Tuy nhiên, việc thay thế từ điển sẽ không nhất thiết hoạt động như mong đợi và việc xóa các mục thiết yếu khỏi từ điển có thể khiến Python bị lỗi. Nếu bạn muốn lặp lại từ điển toàn cầu này, hãy luôn sử dụng
outputString=`python myPythonScript arg1 arg2 arg3 `
269 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
270 để tránh ngoại lệ vì kích thước của nó có thể thay đổi trong quá trình lặp lại do tác dụng phụ của mã hoặc hoạt động trong các luồng khácsys. orig_argvDanh sách các đối số dòng lệnh ban đầu được chuyển đến tệp thực thi Python
Xem thêm
Mới trong phiên bản 3. 10
sys. đường dẫnDanh sách các chuỗi chỉ định đường dẫn tìm kiếm cho các mô-đun. Được khởi tạo từ biến môi trường, cộng với mặc định phụ thuộc vào cài đặt
Theo mặc định, như được khởi tạo khi khởi động chương trình, một đường dẫn không an toàn tiềm tàng được thêm vào trước [trước các mục nhập do kết quả của ]
Dòng lệnh
275. thêm vào thư mục làm việc hiện tạioutputString=`python myPythonScript arg1 arg2 arg3 `
Dòng lệnh
276. thêm vào trước thư mục của tập lệnh. Nếu đó là một liên kết tượng trưng, hãy giải quyết các liên kết tượng trưngoutputString=`python myPythonScript arg1 arg2 arg3 `
Dòng lệnh
277 vàoutputString=`python myPythonScript arg1 arg2 arg3 `
278 [REPL]. thêm vào trước một chuỗi rỗng, có nghĩa là thư mục làm việc hiện tạioutputString=`python myPythonScript arg1 arg2 arg3 `
Để không thêm đường dẫn có thể không an toàn này vào trước, hãy sử dụng tùy chọn dòng lệnh hoặc biến môi trường
Một chương trình được tự do sửa đổi danh sách này cho các mục đích riêng của nó. Chỉ nên thêm các chuỗi vào ;
Xem thêm
Mô-đun Phần này mô tả cách sử dụng. tập tin pth để mở rộng
Một danh sách các hàm có thể gọi lấy một đối số đường dẫn để cố gắng tạo một đường dẫn cho. Nếu một công cụ tìm có thể được tạo, nó sẽ được trả về bởi khả năng gọi được, nếu không thì hãy tăng
Ban đầu được chỉ định trong PEP 302
sys. path_importer_cacheMột từ điển hoạt động như một bộ đệm cho các đối tượng. Các khóa là các đường dẫn đã được chuyển đến và các giá trị là các công cụ tìm được tìm thấy. Nếu một đường dẫn là một đường dẫn hệ thống tệp hợp lệ nhưng không tìm thấy công cụ tìm nào thì
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 được lưu trữBan đầu được chỉ định trong PEP 302
Đã thay đổi trong phiên bản 3. 3. ______3239 được lưu trữ thay vì khi không tìm thấy công cụ tìm.
sys. nền tảngVí dụ: chuỗi này chứa mã định danh nền tảng có thể được sử dụng để nối thêm các thành phần dành riêng cho nền tảng
Đối với các hệ thống Unix, ngoại trừ trên Linux và AIX, đây là tên hệ điều hành viết thường được trả về bởi
outputString=`python myPythonScript arg1 arg2 arg3 `
291 với phần đầu tiên của phiên bản được trả về bởi outputString=`python myPythonScript arg1 arg2 arg3 `
292 được thêm vào, e. g. outputString=`python myPythonScript arg1 arg2 arg3 `
293 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
294, vào thời điểm Python được xây dựng. Trừ khi bạn muốn kiểm tra một phiên bản hệ thống cụ thể, do đó, nên sử dụng thành ngữ sauoutputString=`python myPythonScript arg1 arg2 arg3 `
6Đối với các hệ thống khác, các giá trị là
Hệ thống
Giá trị
outputString=`python myPythonScript arg1 arg2 arg3 `
200AIX
outputString=`python myPythonScript arg1 arg2 arg3 `
296Emscripten
outputString=`python myPythonScript arg1 arg2 arg3 `
297Linux
outputString=`python myPythonScript arg1 arg2 arg3 `
298LÀ TÔI
outputString=`python myPythonScript arg1 arg2 arg3 `
299các cửa sổ
outputString=`python myPythonScript arg1 arg2 arg3 `
600Windows/Cygwin
outputString=`python myPythonScript arg1 arg2 arg3 `
601hệ điều hành Mac
outputString=`python myPythonScript arg1 arg2 arg3 `
602Đã thay đổi trong phiên bản 3. 3. Trên Linux, không chứa phiên bản chính nữa. Nó luôn là
outputString=`python myPythonScript arg1 arg2 arg3 `
298, thay vì outputString=`python myPythonScript arg1 arg2 arg3 `
605 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
606. Vì các phiên bản Python cũ hơn bao gồm số phiên bản, nên luôn sử dụng thành ngữ outputString=`python myPythonScript arg1 arg2 arg3 `
607 được trình bày ở trên. Đã thay đổi trong phiên bản 3. 8. Trên AIX, không chứa phiên bản chính nữa. Nó luôn là
outputString=`python myPythonScript arg1 arg2 arg3 `
296, thay vì outputString=`python myPythonScript arg1 arg2 arg3 `
610 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
611. Vì các phiên bản Python cũ hơn bao gồm số phiên bản, nên luôn sử dụng thành ngữ outputString=`python myPythonScript arg1 arg2 arg3 `
607 được trình bày ở trên. Xem thêm
có độ chi tiết thô hơn. cung cấp thông tin phiên bản phụ thuộc vào hệ thống
Mô-đun này cung cấp các kiểm tra chi tiết về danh tính của hệ thống
sys. platlibdirTên của thư mục thư viện dành riêng cho nền tảng. Nó được sử dụng để xây dựng đường dẫn của thư viện chuẩn và đường dẫn của các mô-đun mở rộng đã cài đặt
Nó bằng với
outputString=`python myPythonScript arg1 arg2 arg3 `
616 trên hầu hết các nền tảng. Trên Fedora và SuSE, nó bằng với outputString=`python myPythonScript arg1 arg2 arg3 `
617 trên nền tảng 64-bit cung cấp các đường dẫn outputString=`python myPythonScript arg1 arg2 arg3 `
273 sau [trong đó outputString=`python myPythonScript arg1 arg2 arg3 `
619 là phiên bản Python outputString=`python myPythonScript arg1 arg2 arg3 `
620]
621. Thư viện tiêu chuẩn [nhưoutputString=`python myPythonScript arg1 arg2 arg3 `
622 của mô-đun]outputString=`python myPythonScript arg1 arg2 arg3 `
624. Các mô-đun mở rộng C của thư viện chuẩn [như mô-đun, tên tệp chính xác là dành riêng cho nền tảng]outputString=`python myPythonScript arg1 arg2 arg3 `
626 [luôn sử dụngoutputString=`python myPythonScript arg1 arg2 arg3 `
627, không phải ]. Mô-đun của bên thứ baoutputString=`python myPythonScript arg1 arg2 arg3 `
629. Các mô-đun mở rộng C của gói bên thứ baoutputString=`python myPythonScript arg1 arg2 arg3 `
Mới trong phiên bản 3. 9
sys. tiền tốMột chuỗi cung cấp tiền tố thư mục dành riêng cho trang nơi các tệp Python độc lập với nền tảng được cài đặt; . Điều này có thể được đặt tại thời điểm xây dựng với đối số
outputString=`python myPythonScript arg1 arg2 arg3 `
631 cho tập lệnh cấu hình. Xem các đường dẫn xuất phátGhi chú
Nếu a có hiệu lực, giá trị này sẽ được thay đổi trong
outputString=`python myPythonScript arg1 arg2 arg3 `
23 để trỏ đến môi trường ảo. Giá trị cho bản cài đặt Python sẽ vẫn khả dụng, thông quasys. ps1sys. ps2Các chuỗi chỉ định dấu nhắc chính và dấu nhắc phụ của trình thông dịch. Chúng chỉ được xác định nếu trình thông dịch ở chế độ tương tác. Giá trị ban đầu của chúng trong trường hợp này là
outputString=`python myPythonScript arg1 arg2 arg3 `
634 và outputString=`python myPythonScript arg1 arg2 arg3 `
635. Nếu một đối tượng không phải chuỗi được gán cho một trong hai biến, thì đối tượng đó sẽ được đánh giá lại mỗi khi trình thông dịch chuẩn bị đọc một lệnh tương tác mới; sys. setdlopenflags[n]Đặt các cờ được trình thông dịch sử dụng cho các cuộc gọi
outputString=`python myPythonScript arg1 arg2 arg3 `
655, chẳng hạn như khi trình thông dịch tải các mô-đun mở rộng. Trong số những thứ khác, điều này sẽ cho phép giải quyết chậm các ký hiệu khi nhập mô-đun, nếu được gọi là outputString=`python myPythonScript arg1 arg2 arg3 `
638. Để chia sẻ các biểu tượng trên các mô-đun mở rộng, hãy gọi là outputString=`python myPythonScript arg1 arg2 arg3 `
639. Có thể tìm thấy tên tượng trưng cho các giá trị cờ trong mô-đun [outputString=`python myPythonScript arg1 arg2 arg3 `
657 hằng số, e. g. ]Unix
sys. set_int_max_str_digits[maxdigits]Đặt được sử dụng bởi trình thông dịch này. Xem thêm
Mới trong phiên bản 3. 11
sys. setprofile[profilefunc]Đặt chức năng cấu hình của hệ thống, cho phép bạn triển khai trình lược tả mã nguồn Python trong Python. Xem chương để biết thêm thông tin về Python profiler. Chức năng hồ sơ của hệ thống được gọi tương tự như chức năng theo dõi của hệ thống [xem ], nhưng nó được gọi với các sự kiện khác nhau, ví dụ: nó không được gọi cho mỗi dòng mã được thực thi [chỉ khi gọi và trả về, nhưng sự kiện trả về được báo cáo . Chức năng này dành riêng cho luồng, nhưng không có cách nào để trình lược tả biết về các chuyển đổi ngữ cảnh giữa các luồng, vì vậy sẽ không hợp lý khi sử dụng chức năng này khi có nhiều luồng. Ngoài ra, giá trị trả về của nó không được sử dụng, vì vậy nó có thể chỉ cần trả về
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239. Lỗi chức năng profile sẽ tự unsetCác chức năng hồ sơ nên có ba đối số. khung, sự kiện và arg. khung là khung ngăn xếp hiện tại. sự kiện là một chuỗi.
outputString=`python myPythonScript arg1 arg2 arg3 `
646, outputString=`python myPythonScript arg1 arg2 arg3 `
647, outputString=`python myPythonScript arg1 arg2 arg3 `
648, outputString=`python myPythonScript arg1 arg2 arg3 `
649 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
650. arg phụ thuộc vào loại sự kiệnTăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
651 mà không có đối sốCác sự kiện có ý nghĩa như sau
outputString=`python myPythonScript arg1 arg2 arg3 `
646Một chức năng được gọi [hoặc một số khối mã khác được nhập]. Hàm hồ sơ được gọi;
outputString=`python myPythonScript arg1 arg2 arg3 `
647Một chức năng [hoặc khối mã khác] sắp trở lại. Hàm hồ sơ được gọi;
outputString=`python myPythonScript arg1 arg2 arg3 `
648Hàm C sắp được gọi. Đây có thể là chức năng mở rộng hoặc tích hợp sẵn. arg là đối tượng hàm C
outputString=`python myPythonScript arg1 arg2 arg3 `
649Một chức năng C đã trở lại. arg là đối tượng hàm C
outputString=`python myPythonScript arg1 arg2 arg3 `
650Hàm C đã đưa ra một ngoại lệ. arg là đối tượng hàm C
sys. setrecursionlimit[giới hạn]Đặt độ sâu tối đa của ngăn xếp trình thông dịch Python thành giới hạn. Giới hạn này ngăn đệ quy vô hạn gây tràn ngăn xếp C và làm sập Python
Giới hạn cao nhất có thể phụ thuộc vào nền tảng. Người dùng có thể cần đặt giới hạn cao hơn khi họ có chương trình yêu cầu đệ quy sâu và nền tảng hỗ trợ giới hạn cao hơn. Điều này nên được thực hiện cẩn thận, vì giới hạn quá cao có thể dẫn đến sự cố
Nếu giới hạn mới quá thấp ở độ sâu đệ quy hiện tại, một ngoại lệ sẽ được đưa ra
Đã thay đổi trong phiên bản 3. 5. 1. Một ngoại lệ hiện được đưa ra nếu giới hạn mới quá thấp ở độ sâu đệ quy hiện tại.
sys. setswitchinterval[interval]Đặt khoảng thời gian chuyển chuỗi của trình thông dịch [tính bằng giây]. Giá trị dấu phẩy động này xác định khoảng thời gian lý tưởng của “lát cắt thời gian” được phân bổ cho các luồng Python chạy đồng thời. Xin lưu ý rằng giá trị thực tế có thể cao hơn, đặc biệt nếu sử dụng các hàm hoặc phương thức nội bộ lâu dài. Ngoài ra, luồng nào được lên lịch vào cuối khoảng thời gian là quyết định của hệ điều hành. Trình thông dịch không có lịch trình riêng
Mới trong phiên bản 3. 2
sys. settrace[tracefunc]Đặt chức năng theo dõi của hệ thống, cho phép bạn triển khai trình gỡ lỗi mã nguồn Python trong Python. Chức năng này dành riêng cho luồng;
Các hàm theo dõi nên có ba đối số. khung, sự kiện và arg. khung là khung ngăn xếp hiện tại. sự kiện là một chuỗi.
outputString=`python myPythonScript arg1 arg2 arg3 `
646, outputString=`python myPythonScript arg1 arg2 arg3 `
664, outputString=`python myPythonScript arg1 arg2 arg3 `
647, outputString=`python myPythonScript arg1 arg2 arg3 `
666 hoặc outputString=`python myPythonScript arg1 arg2 arg3 `
667. arg phụ thuộc vào loại sự kiệnChức năng theo dõi được gọi [với sự kiện được đặt thành
outputString=`python myPythonScript arg1 arg2 arg3 `
646] bất cứ khi nào một phạm vi cục bộ mới được nhập vào; Hàm theo dõi cục bộ sẽ trả về một tham chiếu cho chính nó [hoặc một hàm khác để theo dõi thêm trong phạm vi đó] hoặc
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 để tắt theo dõi trong phạm vi đóNếu có bất kỳ lỗi nào xảy ra trong chức năng theo dõi, thì nó sẽ không được đặt, giống như khi gọi _______2671
Các sự kiện có ý nghĩa như sau
outputString=`python myPythonScript arg1 arg2 arg3 `
646Một chức năng được gọi [hoặc một số khối mã khác được nhập]. Chức năng theo dõi toàn cầu được gọi;
outputString=`python myPythonScript arg1 arg2 arg3 `
664Trình thông dịch chuẩn bị thực thi một dòng mã mới hoặc thực hiện lại điều kiện của một vòng lặp. Chức năng theo dõi cục bộ được gọi; . Xem
outputString=`python myPythonScript arg1 arg2 arg3 `
676 để biết giải thích chi tiết về cách thức hoạt động của tính năng này. Sự kiện trên mỗi dòng có thể bị vô hiệu hóa cho một khung bằng cách đặt outputString=`python myPythonScript arg1 arg2 arg3 `
677 thành trên khung đóoutputString=`python myPythonScript arg1 arg2 arg3 `
647Một chức năng [hoặc khối mã khác] sắp trở lại. Chức năng theo dõi cục bộ được gọi; . Giá trị trả về của hàm theo dõi bị bỏ qua
outputString=`python myPythonScript arg1 arg2 arg3 `
666Một ngoại lệ đã xảy ra. Chức năng theo dõi cục bộ được gọi;
outputString=`python myPythonScript arg1 arg2 arg3 `
667Trình thông dịch chuẩn bị thực thi một opcode mới [xem chi tiết về opcode]. Chức năng theo dõi cục bộ được gọi; . Sự kiện per-opcode không được phát ra theo mặc định. chúng phải được yêu cầu rõ ràng bằng cách đặt
outputString=`python myPythonScript arg1 arg2 arg3 `
686 thành trên khungLưu ý rằng vì một ngoại lệ được truyền xuống chuỗi người gọi, một sự kiện
outputString=`python myPythonScript arg1 arg2 arg3 `
666 được tạo ở mỗi cấp độĐể sử dụng chi tiết hơn, có thể đặt hàm theo dõi bằng cách chỉ định rõ ràng
outputString=`python myPythonScript arg1 arg2 arg3 `
689, thay vì dựa vào việc nó được đặt gián tiếp thông qua giá trị trả về từ hàm theo dõi đã được cài đặt. Điều này cũng cần thiết để kích hoạt chức năng theo dõi trên khung hình hiện tại, điều này không thực hiện được. Lưu ý rằng để tính năng này hoạt động, chức năng theo dõi toàn cầu phải được cài đặt để kích hoạt bộ máy theo dõi thời gian chạy, nhưng nó không cần phải là chức năng theo dõi tương tự [e. g. nó có thể là một chức năng theo dõi chi phí thấp chỉ cần trả về fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 để tự vô hiệu hóa ngay lập tức trên mỗi khung hình]Để biết thêm thông tin về các đối tượng mã và khung, hãy tham khảo
Tăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
693 mà không có đối sốChi tiết triển khai CPython. Chức năng này chỉ dành cho việc triển khai trình gỡ lỗi, trình lược tả, công cụ bảo hiểm và những thứ tương tự. Hành vi của nó là một phần của nền tảng triển khai, chứ không phải là một phần của định nghĩa ngôn ngữ và do đó có thể không có sẵn trong tất cả các triển khai Python
Đã thay đổi trong phiên bản 3. 7. ______2667 đã thêm loại sự kiện;
sys. set_asyncgen_hooks[firstiter , bộ hoàn thiện]Chấp nhận hai đối số từ khóa tùy chọn có thể gọi được chấp nhận làm đối số. Firstiter có thể gọi được sẽ được gọi khi trình tạo không đồng bộ được lặp lại lần đầu tiên. Trình hoàn thiện sẽ được gọi khi trình tạo không đồng bộ sắp được thu gom rác
Tăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
698 mà không có đối sốTăng một
outputString=`python myPythonScript arg1 arg2 arg3 `
699 mà không có đối sốHai sự kiện kiểm tra được đưa ra vì API cơ bản bao gồm hai lệnh gọi, mỗi lệnh gọi phải đưa ra sự kiện riêng
Mới trong phiên bản 3. 6. Xem PEP 525 để biết thêm chi tiết và để biết ví dụ tham khảo về phương pháp hoàn thiện, hãy xem triển khai của
outputString=`python myPythonScript arg1 arg2 arg3 `
900 trong Lib/asyncio/base_events. pGhi chú
Chức năng này đã được thêm vào trên cơ sở tạm thời [xem PEP 411 để biết chi tiết. ]
sys. set_coroutine_origin_tracking_depth[độ sâu]Cho phép bật hoặc tắt theo dõi nguồn gốc coroutine. Khi được bật, thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
901 trên các đối tượng coroutine sẽ chứa một bộ [tên tệp, số dòng, tên hàm] mô tả truy nguyên nơi đối tượng coroutine được tạo, với lệnh gọi gần đây nhất trước tiên. Khi bị tắt, outputString=`python myPythonScript arg1 arg2 arg3 `
901 sẽ là Không cóĐể bật, hãy chuyển một giá trị độ sâu lớn hơn 0; . Để tắt, chuyển độ sâu đã đặt thành 0
Cài đặt này dành riêng cho chủ đề
Mới trong phiên bản 3. 7
Ghi chú
Chức năng này đã được thêm vào trên cơ sở tạm thời [xem PEP 411 để biết chi tiết. ] Chỉ sử dụng nó cho mục đích gỡ lỗi
sys. _enablelegacywindowsfsencoding[]Thay đổi tương ứng thành 'mbcs' và 'replace' để thống nhất với các phiên bản Python trước 3. 6
Điều này tương đương với việc xác định biến môi trường trước khi khởi chạy Python
Xem thêm và
các cửa sổ
Mới trong phiên bản 3. 6. Xem PEP 529 để biết thêm chi tiết.
sys. stdinsys. thiết bị xuất chuẩnsys. stderrđược trình thông dịch sử dụng cho đầu vào, đầu ra và lỗi tiêu chuẩn
906 được sử dụng cho tất cả đầu vào tương tác [bao gồm cả lệnh gọi đến ];outputString=`python myPythonScript arg1 arg2 arg3 `
908 được sử dụng cho đầu ra của và câu lệnh và cho lời nhắc của ;outputString=`python myPythonScript arg1 arg2 arg3 `
Lời nhắc riêng của trình thông dịch và thông báo lỗi của nó đi tới
466outputString=`python myPythonScript arg1 arg2 arg3 `
Các luồng này đều đặn giống như các luồng được trả về bởi hàm. Các thông số của chúng được chọn như sau
Mã hóa và xử lý lỗi được khởi tạo từ và
Trên Windows, UTF-8 được sử dụng cho thiết bị bảng điều khiển. Các thiết bị không phải ký tự như tệp đĩa và đường ống sử dụng mã hóa ngôn ngữ hệ thống [i. e. trang mã ANSI]. Các thiết bị ký tự không phải bảng điều khiển như NUL [i. e. trong đó
915 trả vềoutputString=`python myPythonScript arg1 arg2 arg3 `
484] sử dụng giá trị của bảng mã đầu vào và đầu ra của bảng điều khiển khi khởi động, tương ứng cho stdin và stdout/stderr. Điều này mặc định cho hệ thống nếu quy trình ban đầu không được gắn vào bảng điều khiểnfileLocation=`python myPythonScript1 arg1 arg2 arg1` python myPythonScript2 $fileLocation
Hành vi đặc biệt của bảng điều khiển có thể được ghi đè bằng cách đặt biến môi trường PYTHONLEGACYWINDOWSSTIO trước khi khởi động Python. Trong trường hợp đó, bảng mã bảng điều khiển được sử dụng như đối với bất kỳ thiết bị ký tự nào khác
Trong tất cả các nền tảng, bạn có thể ghi đè mã hóa ký tự bằng cách đặt biến môi trường trước khi khởi động Python hoặc bằng cách sử dụng tùy chọn dòng lệnh
616 mới và biến môi trường. Tuy nhiên, đối với bảng điều khiển Windows, điều này chỉ áp dụng khi cũng được đặtoutputString=`python myPythonScript arg1 arg2 arg3 `
Khi tương tác, luồng
908 được đệm theo dòng. Mặt khác, nó được chặn vào bộ đệm giống như các tệp văn bản thông thường. LuồngoutputString=`python myPythonScript arg1 arg2 arg3 `
466 được đệm dòng trong cả hai trường hợp. Bạn có thể làm cho cả hai luồng không có bộ đệm bằng cách chuyển tùy chọn dòng lệnh hoặc đặt biến môi trườngoutputString=`python myPythonScript arg1 arg2 arg3 `
Đã thay đổi trong phiên bản 3. 9. Không tương tác
outputString=`python myPythonScript arg1 arg2 arg3 `
466 hiện được đệm theo dòng thay vì được đệm hoàn toàn. Ghi chú
Để ghi hoặc đọc dữ liệu nhị phân từ/đến các luồng tiêu chuẩn, hãy sử dụng đối tượng nhị phân bên dưới. Ví dụ: để ghi byte vào , hãy sử dụng
outputString=`python myPythonScript arg1 arg2 arg3 `
929Tuy nhiên, nếu bạn đang viết một thư viện [và không kiểm soát mã của nó sẽ được thực thi trong bối cảnh nào], hãy lưu ý rằng các luồng tiêu chuẩn có thể được thay thế bằng các đối tượng giống như tệp không hỗ trợ thuộc tính
outputString=`python myPythonScript arg1 arg2 arg3 `
927sys. __stdin__sys. __stdout__sys. __stderr__Các đối tượng này chứa các giá trị ban đầu của
outputString=`python myPythonScript arg1 arg2 arg3 `
906, outputString=`python myPythonScript arg1 arg2 arg3 `
466 và outputString=`python myPythonScript arg1 arg2 arg3 `
908 khi bắt đầu chương trình. Chúng được sử dụng trong quá trình hoàn thiện và có thể hữu ích để in ra luồng tiêu chuẩn thực tế bất kể đối tượng outputString=`python myPythonScript arg1 arg2 arg3 `
935 đã được chuyển hướng hay chưaNó cũng có thể được sử dụng để khôi phục các tệp thực tế thành các đối tượng tệp đang hoạt động đã biết trong trường hợp chúng bị ghi đè bằng một đối tượng bị hỏng. Tuy nhiên, cách ưu tiên để thực hiện việc này là lưu rõ ràng luồng trước đó trước khi thay thế luồng đó và khôi phục đối tượng đã lưu
Ghi chú
Trong một số điều kiện
outputString=`python myPythonScript arg1 arg2 arg3 `
906, outputString=`python myPythonScript arg1 arg2 arg3 `
908 và outputString=`python myPythonScript arg1 arg2 arg3 `
466 cũng như các giá trị gốc outputString=`python myPythonScript arg1 arg2 arg3 `
939, outputString=`python myPythonScript arg1 arg2 arg3 `
940 và outputString=`python myPythonScript arg1 arg2 arg3 `
941 có thể là fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239. Trường hợp này thường xảy ra đối với các ứng dụng Windows GUI không được kết nối với bảng điều khiển và các ứng dụng Python bắt đầu bằng pythonwsys. stdlib_module_namesMột tập hợp các chuỗi cố định chứa tên của các mô-đun thư viện tiêu chuẩn
Nó giống nhau trên tất cả các nền tảng. Các mô-đun không khả dụng trên một số nền tảng và các mô-đun bị tắt khi xây dựng Python cũng được liệt kê. Tất cả các loại mô-đun được liệt kê. Python thuần túy, các mô-đun tích hợp, đóng băng và mở rộng. Các mô-đun thử nghiệm bị loại trừ
Đối với các gói, chỉ có gói chính được liệt kê. gói phụ và mô-đun phụ không được liệt kê. Ví dụ: gói
outputString=`python myPythonScript arg1 arg2 arg3 `
943 được liệt kê, nhưng gói phụ outputString=`python myPythonScript arg1 arg2 arg3 `
944 và mô-đun phụ outputString=`python myPythonScript arg1 arg2 arg3 `
945 không được liệt kêXem thêm danh sách
Mới trong phiên bản 3. 10
sys. thread_infoMột thông tin đang lưu giữ về việc triển khai luồng
Thuộc tính
Giải trình
outputString=`python myPythonScript arg1 arg2 arg3 `
947Tên của chủ đề thực hiện
948. Chủ đề WindowsoutputString=`python myPythonScript arg1 arg2 arg3 `
949. chủ đề POSIXoutputString=`python myPythonScript arg1 arg2 arg3 `
950. sơ khai chủ đề POSIX [trên nền tảng WebAssugging không hỗ trợ luồng]outputString=`python myPythonScript arg1 arg2 arg3 `
951. chủ đề năng lượng mặt trờioutputString=`python myPythonScript arg1 arg2 arg3 `
outputString=`python myPythonScript arg1 arg2 arg3 `
952Tên thực hiện khóa
953. một khóa sử dụng một semaphoreoutputString=`python myPythonScript arg1 arg2 arg3 `
954. một khóa sử dụng một mutex và một biến điều kiệnoutputString=`python myPythonScript arg1 arg2 arg3 `
239 nếu thông tin này không rõfileLocation=`python myPythonScript1 arg1 arg2 arg1` python myPythonScript2 $fileLocation
Tên và phiên bản của thư viện chủ đề. Đó là một chuỗi hoặc
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239 nếu thông tin này không xác địnhMới trong phiên bản 3. 3
sys. giới hạn truy nguyênKhi biến này được đặt thành một giá trị số nguyên, nó sẽ xác định số mức thông tin truy nguyên tối đa được in khi xảy ra ngoại lệ chưa được xử lý. Mặc định là
outputString=`python myPythonScript arg1 arg2 arg3 `
958. Khi được đặt thành outputString=`python myPythonScript arg1 arg2 arg3 `
959 trở xuống, tất cả thông tin truy ngược sẽ bị chặn và chỉ có loại và giá trị ngoại lệ được insys. unraisablehook[unraisablehook , /]Xử lý một ngoại lệ không thể đưa ra
Được gọi khi có ngoại lệ xảy ra nhưng không có cách nào để Python xử lý nó. Ví dụ: khi hàm hủy phát sinh ngoại lệ hoặc trong quá trình thu gom rác []
Đối số unraisable có các thuộc tính sau
exc_type. loại ngoại lệ
ex_value. Giá trị ngoại lệ, có thể là
239fileLocation=`python myPythonScript1 arg1 arg2 arg1` python myPythonScript2 $fileLocation
exc_traceback. Truy nguyên ngoại lệ, có thể là
239fileLocation=`python myPythonScript1 arg1 arg2 arg1` python myPythonScript2 $fileLocation
err_msg. Thông báo lỗi, có thể là
239fileLocation=`python myPythonScript1 arg1 arg2 arg1` python myPythonScript2 $fileLocation
sự vật. Đối tượng gây ra ngoại lệ, có thể là
239fileLocation=`python myPythonScript1 arg1 arg2 arg1` python myPythonScript2 $fileLocation
Các định dạng hook mặc định err_msg và đối tượng là.
outputString=`python myPythonScript arg1 arg2 arg3 `
965; có thể được ghi đè để kiểm soát cách xử lý các ngoại lệ không thể xử lý
Lưu trữ exc_value bằng móc tùy chỉnh có thể tạo chu kỳ tham chiếu. Nó phải được xóa một cách rõ ràng để phá vỡ chu trình tham chiếu khi không còn cần thiết ngoại lệ
Lưu trữ đối tượng bằng hook tùy chỉnh có thể phục hồi đối tượng nếu nó được đặt thành đối tượng đang được hoàn thiện. Tránh lưu trữ đối tượng sau khi móc tùy chỉnh hoàn thành để tránh phục hồi đối tượng
Xem thêm cái nào xử lý các trường hợp ngoại lệ chưa được phát hiện
Tăng sự kiện kiểm toán
outputString=`python myPythonScript arg1 arg2 arg3 `
969 với các đối số outputString=`python myPythonScript arg1 arg2 arg3 `
421, outputString=`python myPythonScript arg1 arg2 arg3 `
971 khi xảy ra ngoại lệ không thể xử lý. Đối tượng outputString=`python myPythonScript arg1 arg2 arg3 `
971 giống với đối tượng sẽ được truyền vào hook. Nếu chưa đặt hook, outputString=`python myPythonScript arg1 arg2 arg3 `
421 có thể là fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
239Mới trong phiên bản 3. 8
sys. phiên bảnMột chuỗi chứa số phiên bản của trình thông dịch Python cùng với thông tin bổ sung về số bản dựng và trình biên dịch được sử dụng. Chuỗi này được hiển thị khi trình thông dịch tương tác được bắt đầu. Không trích xuất thông tin phiên bản ra khỏi nó, thay vào đó, hãy sử dụng và các chức năng do mô-đun cung cấp
sys. api_versionPhiên bản API C cho trình thông dịch này. Các lập trình viên có thể thấy điều này hữu ích khi phiên bản gỡ lỗi xung đột giữa Python và các mô-đun mở rộng
sys. version_infoMột bộ chứa năm thành phần của số phiên bản. chính, phụ, vi mô, cấp độ phát hành và nối tiếp. Tất cả các giá trị ngoại trừ mức phát hành là số nguyên; . Giá trị
outputString=`python myPythonScript arg1 arg2 arg3 `
975 tương ứng với phiên bản Python 2. 0 là outputString=`python myPythonScript arg1 arg2 arg3 `
982. Các thành phần cũng có thể được truy cập theo tên, vì vậy outputString=`python myPythonScript arg1 arg2 arg3 `
983 tương đương với outputString=`python myPythonScript arg1 arg2 arg3 `
984, v.v.Đã thay đổi trong phiên bản 3. 1. Đã thêm thuộc tính thành phần được đặt tên.
sys. cảnh báoĐây là chi tiết triển khai của khung cảnh báo; . Tham khảo mô-đun để biết thêm thông tin về khung cảnh báo
sys. người chiến thắngSố phiên bản được sử dụng để tạo khóa đăng ký trên nền tảng Windows. Điều này được lưu trữ dưới dạng tài nguyên chuỗi 1000 trong Python DLL. Giá trị thường là ba ký tự đầu tiên của. Nó được cung cấp trong mô-đun cho mục đích thông tin;
các cửa sổ
sys. _xoptionsMột từ điển gồm các cờ dành riêng cho việc triển khai khác nhau được chuyển qua tùy chọn dòng lệnh. Tên tùy chọn được ánh xạ tới các giá trị của chúng, nếu được cung cấp rõ ràng hoặc tới. Thí dụ
outputString=`python myPythonScript arg1 arg2 arg3 `
9Chi tiết triển khai CPython. Đây là cách truy cập các tùy chọn dành riêng cho CPython được truyền qua. Các triển khai khác có thể xuất chúng thông qua các phương tiện khác hoặc hoàn toàn không
Mới trong phiên bản 3. 2
trích dẫn
ISO/IEC 9899. 1999. “Ngôn ngữ lập trình – C. ” Bản thảo công khai của tiêu chuẩn này có tại https. //www. mở tiêu chuẩn. org/jtc1/sc22/wg14/www/docs/n1256. pdf