Hướng dẫn python extended_arg - python Extended_arg
Tôi có một tệp mã python byte và tôi không có tệp .py gốc. Tôi cố gắng chạy nó. Tuy nhiên, nó làm tăng lỗi Show
Tôi đang sử dụng Python3.8.0. dis.hasjabs¶ Lib/dis.py Trình tự các byte có mục tiêu nhảy tuyệt đối.bytecode by disassembling it. The CPython bytecode which this module takes as an input is defined in the file def myfunc(alist): return len(alist)1 and used by the compiler and the interpreter. dis.haslocal¶ Bytecode is an implementation detail of the CPython interpreter. No guarantees are made that bytecode will not be added, removed, or changed between versions of Python. Use of this module should not be considered to work across Python VMs or Python releases. Trình tự bytecodes truy cập một biến cục bộ.Use 2 bytes for each instruction. Previously the number of bytes varied by instruction. dis.hascompare¶The argument of jump, exception handling and loop instructions is now the instruction offset rather than the byte offset. Trình tự byte của các hoạt động boolean.Some instructions are accompanied by one or more inline cache entries, which take the form of def myfunc(alist): return len(alist)2 instructions. These instructions are hidden by default, but can be shown by passing def myfunc(alist): return len(alist)3 to any def myfunc(alist): return len(alist)0 utility. Furthermore, the interpreter now adapts the bytecode to specialize it for different runtime conditions. The adaptive bytecode can be shown by passing def myfunc(alist): return len(alist)5. Mã nguồn: lib/dis.py def myfunc(alist): return len(alist) Mô -đun def myfunc(alist): return len(alist)0 hỗ trợ phân tích mã byte Cpython bằng cách tháo rời nó. Mã byte cpython mà mô -đun này lấy làm đầu vào được xác định trong tệp def myfunc(alist): return len(alist)1 và được sử dụng bởi trình biên dịch và trình thông dịch. >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE Chi tiết triển khai CPYThon: Bytecode là một chi tiết triển khai của trình thông dịch CPython. Không có đảm bảo nào được thực hiện rằng mã byte sẽ không được thêm, loại bỏ hoặc thay đổi giữa các phiên bản của Python. Việc sử dụng mô -đun này không nên được xem xét để hoạt động trên các bản phát hành Python VM hoặc Python. Đã thay đổi trong phiên bản 3.6: Sử dụng 2 byte cho mỗi hướng dẫn. Trước đây số lượng byte thay đổi theo hướng dẫn.Đã thay đổi trong phiên bản 3.10: Đối số của Jump, Hướng dẫn xử lý ngoại lệ và Loop hiện là phần bù hướng dẫn thay vì bù byte. Đã thay đổi trong phiên bản 3.11: Một số hướng dẫn được kèm theo một hoặc nhiều mục bộ đệm nội tuyến, có dạng hướng dẫn def myfunc(alist): return len(alist)2. Các hướng dẫn này được ẩn theo mặc định, nhưng có thể được hiển thị bằng cách chuyển def myfunc(alist): return len(alist)3 cho bất kỳ tiện ích def myfunc(alist): return len(alist)0 nào. Hơn nữa, trình thông dịch hiện đang điều chỉnh mã byte để chuyên về nó cho các điều kiện thời gian chạy khác nhau. Mã byte thích ứng có thể được hiển thị bằng cách vượt qua def myfunc(alist): return len(alist)5. Ví dụ: Cho chức năng def myfunc(alist): return len(alist)6:dis.Bytecode(x, *, first_line=None, current_offset=None, show_caches=False, adaptive=False)¶ Lệnh sau đây có thể được sử dụng để hiển thị việc tháo gỡ def myfunc(alist): return len(alist)6: Đây là một trình bao bọc tiện lợi xung quanh nhiều chức năng được liệt kê dưới đây, đáng chú ý nhất là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE0, khi lặp lại một trường hợp def myfunc(alist): return len(alist)8 mang lại các hoạt động của mã byte như các trường hợp >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE2. Nếu First_line không phải là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3, nó chỉ ra số dòng cần được báo cáo cho dòng nguồn đầu tiên trong mã tháo rời. Mặt khác, thông tin dòng nguồn (nếu có) được lấy trực tiếp từ đối tượng mã tháo rời. Nếu current_offset không phải là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3, nó sẽ đề cập đến một phần bù lệnh trong mã tháo rời. Cài đặt điều này có nghĩa là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE5 sẽ hiển thị một điểm đánh dấu hướng dẫn hiện tại của người dùng đối với mã opcode được chỉ định. Nếu show_caches là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6, >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE5 sẽ hiển thị các mục lưu trữ nội tuyến được sử dụng bởi trình thông dịch để chuyên về mã byte. Nếu thích ứng là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6, >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE5 sẽ hiển thị mã byte được chuyên dụng có thể khác với mã byte gốc. classMethodFrom_TraceBack (tb, *, show_caches = false) ¶from_traceback(tb, *, show_caches=False)¶ Xây dựng một thể hiện def myfunc(alist): return len(alist)8 từ TraceBack đã cho, đặt current_offset thành lệnh chịu trách nhiệm cho ngoại lệ. CodeObj¶¶ Đối tượng mã được biên dịch. dòng đầu tiên¶¶Dòng nguồn đầu tiên của đối tượng mã (nếu có) dis () ¶()¶Trả về một chế độ xem được định dạng của các hoạt động bytecode (giống như được in bởi >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE1, nhưng được trả về dưới dạng chuỗi nhiều dòng). thông tin()¶()¶ Trả về một chuỗi đa dòng được định dạng với thông tin chi tiết về đối tượng mã, như >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE2. Đã thay đổi trong phiên bản 3.7: Điều này hiện có thể xử lý các đối tượng máy phát Coroutine và không đồng bộ.This can now handle coroutine and asynchronous generator objects. Đã thay đổi trong phiên bản 3.11: Đã thêm show_caches và các tham số thích ứng.Added the show_caches and adaptive parameters. Example: >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE Chức năng phân tíchMô -đun def myfunc(alist): return len(alist)0 cũng xác định các chức năng phân tích sau đây chuyển đổi đầu vào trực tiếp thành đầu ra mong muốn. Chúng có thể hữu ích nếu chỉ có một hoạt động duy nhất được thực hiện, vì vậy đối tượng phân tích trung gian không hữu ích: dis.code_info (x) ¶code_info(x)¶ Trả về một chuỗi đa dòng được định dạng với thông tin đối tượng mã chi tiết cho hàm được cung cấp, trình tạo, trình tạo không đồng bộ, coroutine, phương thức, chuỗi mã nguồn hoặc đối tượng mã. Lưu ý rằng nội dung chính xác của chuỗi thông tin mã phụ thuộc rất nhiều và chúng có thể thay đổi tùy ý trên các bản phát hành Python VM hoặc Python. Mới trong phiên bản 3.2. Đã thay đổi trong phiên bản 3.7: Điều này hiện có thể xử lý các đối tượng máy phát Coroutine và không đồng bộ.This can now handle coroutine and asynchronous generator objects. Đã thay đổi trong phiên bản 3.11: Đã thêm show_caches và các tham số thích ứng.show_code(x, *, file=None)¶Chức năng phân tích Mô -đun def myfunc(alist): return len(alist)0 cũng xác định các chức năng phân tích sau đây chuyển đổi đầu vào trực tiếp thành đầu ra mong muốn. Chúng có thể hữu ích nếu chỉ có một hoạt động duy nhất được thực hiện, vì vậy đối tượng phân tích trung gian không hữu ích: Mới trong phiên bản 3.2. dis.show_code (x, *, file = none) ¶Added file parameter. In thông tin đối tượng mã chi tiết cho hàm, phương thức, chuỗi mã nguồn hoặc đối tượng mã vào tệp (hoặc>>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE4 nếu không được chỉ định).dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False)¶ Đây là một tốc ký thuận tiện cho >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE5, dành cho khám phá tương tác tại dấu nhắc phiên dịch. Đã thay đổi trong phiên bản 3.4: Đã thêm tham số tệp. dis.dis (x = none, *, file = none, septth = none, show_caches = false, formedive = false) Tháo rời đối tượng x. X có thể biểu thị một mô -đun, lớp, phương thức, hàm, trình tạo, trình tạo không đồng bộ, coroutine, đối tượng mã, chuỗi mã nguồn hoặc chuỗi byte của mã byte thô. Đối với một mô -đun, nó tháo rời tất cả các chức năng. Đối với một lớp, nó tháo rời tất cả các phương thức (bao gồm cả phương thức lớp và tĩnh). Đối với một đối tượng mã hoặc chuỗi mã byte thô, nó in một dòng trên mỗi lệnh bytecode. Nó cũng tách rời các đối tượng mã lồng nhau (mã của sự hiểu biết, biểu thức máy phát và các hàm lồng nhau và mã được sử dụng để xây dựng các lớp lồng nhau). Các chuỗi đầu tiên được biên dịch cho các đối tượng mã với chức năng tích hợp def myfunc(alist): return len(alist)9 trước khi được tháo rời. Nếu không có đối tượng nào được cung cấp, chức năng này tháo gỡ dấu vết cuối cùng. Việc tháo gỡ được viết dưới dạng văn bản cho đối số tệp được cung cấp nếu được cung cấp và cho >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE4 nếu không. dis.show_code (x, *, file = none) ¶Added file parameter. In thông tin đối tượng mã chi tiết cho hàm, phương thức, chuỗi mã nguồn hoặc đối tượng mã vào tệp (hoặc Đã thay đổi trong phiên bản 3.7: Điều này hiện có thể xử lý các đối tượng máy phát Coroutine và không đồng bộ.This can now handle coroutine and asynchronous generator objects. Đã thay đổi trong phiên bản 3.11: Đã thêm show_caches và các tham số thích ứng.Added the show_caches and adaptive parameters. Chức năng phân tíchdistb(tb=None, *, file=None, show_caches=False, adaptive=False)¶Mô -đun def myfunc(alist): return len(alist)0 cũng xác định các chức năng phân tích sau đây chuyển đổi đầu vào trực tiếp thành đầu ra mong muốn. Chúng có thể hữu ích nếu chỉ có một hoạt động duy nhất được thực hiện, vì vậy đối tượng phân tích trung gian không hữu ích: Đã thay đổi trong phiên bản 3.4: Đã thêm tham số tệp. Đã thay đổi trong phiên bản 3.4: Đã thêm tham số tệp.Added file parameter. Đã thay đổi trong phiên bản 3.11: Đã thêm show_caches và các tham số thích ứng.Added the show_caches and adaptive parameters. dis.disassemble (code, lasti = -1, *, file = none, show_caches = false, formedive = false) ) ¶disassemble(code, lasti=- 1, *, file=None, show_caches=False, adaptive=False)¶ dis.disco(code, lasti=- 1, *, file=None, show_caches=False, adaptive=False)¶Tháo rời một đối tượng mã, chỉ ra lệnh cuối cùng nếu Lasti được cung cấp. Đầu ra được chia trong các cột sau:
Giải thích tham số nhận ra tên biến cục bộ và toàn cầu, giá trị không đổi, mục tiêu nhánh và so sánh các toán tử. Việc tháo gỡ được viết dưới dạng văn bản cho đối số tệp được cung cấp nếu được cung cấp và cho >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE4 nếu không. Đã thay đổi trong phiên bản 3.4: Đã thêm tham số tệp.Added file parameter. Đã thay đổi trong phiên bản 3.11: Đã thêm show_caches và các tham số thích ứng.Added the show_caches and adaptive parameters. dis.disassemble (code, lasti = -1, *, file = none, show_caches = false, formedive = false) ) ¶get_instructions(x, *, first_line=None, show_caches=False, adaptive=False)¶Tháo rời một đối tượng mã, chỉ ra lệnh cuối cùng nếu Lasti được cung cấp. Đầu ra được chia trong các cột sau: số dòng, cho hướng dẫn đầu tiên của mỗi dòng Hướng dẫn hiện tại, được chỉ định là một hướng dẫn được dán nhãn, được chỉ định với địa chỉ của hướng dẫn, Đã thay đổi trong phiên bản 3.11: Đã thêm show_caches và các tham số thích ứng.Added the show_caches and adaptive parameters. dis.disassemble (code, lasti = -1, *, file = none, show_caches = false, formedive = false) ) ¶findlinestarts(code)¶Tháo rời một đối tượng mã, chỉ ra lệnh cuối cùng nếu Lasti được cung cấp. Đầu ra được chia trong các cột sau: số dòng, cho hướng dẫn đầu tiên của mỗi dòngLine numbers can be decreasing. Before, they were always increasing. Hướng dẫn hiện tại, được chỉ định là [1] 5811 segmentation fault python flag5.pyc 4,findlabels(code)¶địa chỉ của hướng dẫn, Tên mã hoạt động,stack_effect(opcode, oparg=None, *, jump=None)¶tham số hoạt động và Giải thích các tham số trong ngoặc đơn. địa chỉ của hướng dẫn, Tên mã hoạt động,Added jump parameter. tham số hoạt động vàGiải thích các tham số trong ngoặc đơn. Giải thích tham số nhận ra tên biến cục bộ và toàn cầu, giá trị không đổi, mục tiêu nhánh và so sánh các toán tử.dis.Instruction¶Việc tháo gỡ được viết dưới dạng văn bản cho đối số tệp được cung cấp nếu được cung cấp và cho >>> bytecode = dis.Bytecode(myfunc) >>> for instr in bytecode: ... print(instr.opname) ... RESUME LOAD_GLOBAL LOAD_FAST PRECALL CALL RETURN_VALUE4 nếu không. dis.get_instructions (x, *, first_line = none, show_caches = false¶ Trả về trình lặp qua các hướng dẫn trong hàm, phương thức, chuỗi mã nguồn hoặc đối tượng mã được cung cấp.Opcode collections. Trình lặp tạo ra một loạt các bộ>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE2 có tên cung cấp các chi tiết của từng hoạt động trong mã được cung cấp.¶ Nếu First_line không phải là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3, nó chỉ ra số dòng cần được báo cáo cho dòng nguồn đầu tiên trong mã tháo rời. Mặt khác, thông tin dòng nguồn (nếu có) được lấy trực tiếp từ đối tượng mã tháo rời. Các tham số show_caches và thích ứng hoạt động như chúng trong >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE5.¶ Mới trong phiên bản 3.4. dis.findlinestarts (mã) ¶¶Hàm trình tạo này sử dụng phương thức Đã thay đổi trong phiên bản 3.10: Phương thức PEP 626 Phát hiện tất cả các độ lệch trong mã chuỗi ByteCode được biên dịch là các mục tiêu nhảy và trả về một danh sách các độ lệch này. Tính hiệu ứng ngăn xếp của opcode với đối số oparg. Nếu mã có mục tiêu nhảy và nhảy là>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6, EXTENDED_ARG 5 sẽ trả về hiệu ứng ngăn xếp của nhảy. Nếu nhảy là EXTENDED_ARG 6, nó sẽ trả về hiệu ứng ngăn xếp của việc không nhảy. Và nếu nhảy là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3 (mặc định), nó sẽ trả về hiệu ứng ngăn xếp tối đa của cả hai trường hợp.¶ Đã thay đổi trong phiên bản 3.8: Thêm tham số nhảy. Hướng dẫn mã byte Python¶Hàm >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE0 và lớp def myfunc(alist): return len(alist)8 cung cấp chi tiết về các hướng dẫn mã byte như >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE2 Các phiên bản: địa chỉ của hướng dẫn, Tên mã hoạt động,Field Giải thích các tham số trong ngoặc đơn. Giải thích tham số nhận ra tên biến cục bộ và toàn cầu, giá trị không đổi, mục tiêu nhánh và so sánh các toán tử.¶ end_lineno¶ col_offset¶ end_col_offset¶Việc tháo gỡ được viết dưới dạng văn bản cho đối số tệp được cung cấp nếu được cung cấp và cho dis.get_instructions (x, *, first_line = none, show_caches = false Trả về trình lặp qua các hướng dẫn trong hàm, phương thức, chuỗi mã nguồn hoặc đối tượng mã được cung cấp. Trình lặp tạo ra một loạt các bộ>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE2 có tên cung cấp các chi tiết của từng hoạt động trong mã được cung cấp.¶ Nếu First_line không phải là >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3, nó chỉ ra số dòng cần được báo cáo cho dòng nguồn đầu tiên trong mã tháo rời. Mặt khác, thông tin dòng nguồn (nếu có) được lấy trực tiếp từ đối tượng mã tháo rời. Các tham số show_caches và thích ứng hoạt động như chúng trong >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE5.¶ Mới trong phiên bản 3.4. dis.findlinestarts (mã) ¶(i)¶Hàm trình tạo này sử dụng phương thức Việc tháo gỡ được viết dưới dạng văn bản cho đối số tệp được cung cấp nếu được cung cấp và cho Trả về trình lặp qua các hướng dẫn trong hàm, phương thức, chuỗi mã nguồn hoặc đối tượng mã được cung cấp. Việc tháo gỡ được viết dưới dạng văn bản cho đối số tệp được cung cấp nếu được cung cấp và cho Trả về trình lặp qua các hướng dẫn trong hàm, phương thức, chuỗi mã nguồn hoặc đối tượng mã được cung cấp. Về mặt logic, không gian này là một phần của hướng dẫn trước. Nhiều opcodes dự kiến sẽ được theo sau bởi một số lượng chính xác của bộ nhớ cache và sẽ hướng dẫn người phiên dịch bỏ qua chúng trong thời gian chạy. Bộ đệm đông dân có thể trông giống như các hướng dẫn tùy ý, vì vậy nên cẩn thận khi đọc hoặc sửa đổi mã byte thô, thích ứng có chứa dữ liệu được nhanh chóng. Mới trong phiên bản 3.11. Hoạt động đơn Các hoạt động đơn vị đứng đầu ngăn xếp, áp dụng hoạt động và đẩy kết quả trở lại trên ngăn xếp. Unary_positive¶¶Thực hiện Thực hiện Thực hiện Thực hiện Thực hiện Nếu Mới trong phiên bản 3.5. Hoạt động nhị phân và tại chỗ Các hoạt động nhị phân loại bỏ đỉnh của ngăn xếp (TOS) và mục ngăn xếp hàng đầu thứ hai (TOS1) khỏi ngăn xếp. Họ thực hiện hoạt động, và đặt kết quả trở lại trên ngăn xếp. Các hoạt động tại chỗ giống như các hoạt động nhị phân, trong đó chúng loại bỏ TOS và TOS1, và đẩy kết quả trở lại vào ngăn xếp, nhưng hoạt động được thực hiện tại chỗ khi TOS1 hỗ trợ nó và có thể là) Tos1 ban đầu. Binary_op (op) ¶(op)¶Thực hiện các toán tử nhị phân và tại chỗ (tùy thuộc vào giá trị của OP). Mới trong phiên bản 3.11. Binary_Subscr¶¶Thực hiện Thực hiện Thực hiện Opcodes Coroutine Get_awaitable (ở đâu) ¶(where)¶Thực hiện
Mới trong phiên bản 3.5. Hoạt động nhị phân và tại chỗPreviously, this instruction did not have an oparg. Các hoạt động nhị phân loại bỏ đỉnh của ngăn xếp (TOS) và mục ngăn xếp hàng đầu thứ hai (TOS1) khỏi ngăn xếp. Họ thực hiện hoạt động, và đặt kết quả trở lại trên ngăn xếp.¶Các hoạt động tại chỗ giống như các hoạt động nhị phân, trong đó chúng loại bỏ TOS và TOS1, và đẩy kết quả trở lại vào ngăn xếp, nhưng hoạt động được thực hiện tại chỗ khi TOS1 hỗ trợ nó và có thể là) Tos1 ban đầu. Mới trong phiên bản 3.5. Hoạt động nhị phân và tại chỗReturning awaitable objects from Các hoạt động tại chỗ giống như các hoạt động nhị phân, trong đó chúng loại bỏ TOS và TOS1, và đẩy kết quả trở lại vào ngăn xếp, nhưng hoạt động được thực hiện tại chỗ khi TOS1 hỗ trợ nó và có thể là) Tos1 ban đầu. Mới trong phiên bản 3.5. Hoạt động nhị phân và tại chỗ¶Các hoạt động nhị phân loại bỏ đỉnh của ngăn xếp (TOS) và mục ngăn xếp hàng đầu thứ hai (TOS1) khỏi ngăn xếp. Họ thực hiện hoạt động, và đặt kết quả trở lại trên ngăn xếp. Các hoạt động tại chỗ giống như các hoạt động nhị phân, trong đó chúng loại bỏ TOS và TOS1, và đẩy kết quả trở lại vào ngăn xếp, nhưng hoạt động được thực hiện tại chỗ khi TOS1 hỗ trợ nó và có thể là) Tos1 ban đầu. Binary_op (op) ¶Exception representation on the stack now consist of one, not three, items. Thực hiện các toán tử nhị phân và tại chỗ (tùy thuộc vào giá trị của OP).¶Binary_Subscr¶ Mới trong phiên bản 3.5. Hoạt động nhị phân và tại chỗ Các hoạt động nhị phân loại bỏ đỉnh của ngăn xếp (TOS) và mục ngăn xếp hàng đầu thứ hai (TOS1) khỏi ngăn xếp. Họ thực hiện hoạt động, và đặt kết quả trở lại trên ngăn xếp.¶Các hoạt động tại chỗ giống như các hoạt động nhị phân, trong đó chúng loại bỏ TOS và TOS1, và đẩy kết quả trở lại vào ngăn xếp, nhưng hoạt động được thực hiện tại chỗ khi TOS1 hỗ trợ nó và có thể là) Tos1 ban đầu. Binary_op (op) ¶(i)¶Thực hiện các toán tử nhị phân và tại chỗ (tùy thuộc vào giá trị của OP). Binary_Subscr¶(i)¶Thực hiện Thực hiện Delete_subscr¶ Thực hiện Opcodes Coroutine Get_awaitable (ở đâu) ¶¶Thực hiện LOAD_CONST 6 khác không, nó sẽ chỉ ra nơi hướng dẫn xảy ra:¶
LOAD_CONST 9 Sau khi gọi đến BUILD_LIST 0¶Đã thay đổi trong phiên bản 3.11: Trước đây, hướng dẫn này không có OPARG.variable annotations statically. Get_aiter¶ Thực hiệnBUILD_LIST 1.¶Thay đổi trong phiên bản 3.7: Trả về các đối tượng có thể chờ từ Đẩy Thực hiện các toán tử nhị phân và tại chỗ (tùy thuộc vào giá trị của OP).¶ Binary_Subscr¶ Thực hiện Binary_op (op) ¶Exception representation on the stack now consist of one, not three, items. Push_exc_info¶¶Bật một giá trị từ ngăn xếp. Đẩy ngoại lệ hiện tại lên đỉnh của ngăn xếp. Đẩy giá trị ban đầu được bật trở lại ngăn xếp. Được sử dụng trong bộ xử lý ngoại lệ. Mới trong phiên bản 3.11. Check_exc_match¶¶Thực hiện khớp ngoại lệ cho def myfunc(alist): return len(alist)15. Kiểm tra xem TOS1 có phải là một ngoại lệ phù hợp với TOS hay không. Pops chos và đẩy kết quả boolean của bài kiểm tra. Mới trong phiên bản 3.11. Check_exc_match¶¶Thực hiện khớp ngoại lệ cho def myfunc(alist): return len(alist)15. Kiểm tra xem TOS1 có phải là một ngoại lệ phù hợp với TOS hay không. Pops chos và đẩy kết quả boolean của bài kiểm tra. Check_eg_match¶ Mới trong phiên bản 3.11. Check_exc_match¶¶Thực hiện khớp ngoại lệ cho def myfunc(alist): return len(alist)15. Kiểm tra xem TOS1 có phải là một ngoại lệ phù hợp với TOS hay không. Pops chos và đẩy kết quả boolean của bài kiểm tra. Mới trong phiên bản 3.11. Check_exc_match¶¶Thực hiện khớp ngoại lệ cho def myfunc(alist): return len(alist)15. Kiểm tra xem TOS1 có phải là một ngoại lệ phù hợp với TOS hay không. Pops chos và đẩy kết quả boolean của bài kiểm tra. Check_eg_match¶ Thực hiện khớp ngoại lệ cho def myfunc(alist): return len(alist)23 function is in position 4 of the stack rather than 7. Exception representation on the stack now consist of one, not three, items. Trong trường hợp của một trận đấu, bật hai mục từ ngăn xếp và đẩy phân nhóm không phù hợp ( >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3 trong trường hợp trận đấu đầy đủ) theo sau là phân nhóm phù hợp. Khi không có khớp, bật một mục (loại khớp) và đẩy >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3.¶ Prep_reraise_star¶ Check_eg_match¶ def myfunc(alist): return len(alist)16. Áp dụng def myfunc(alist): return len(alist)17 trên nhóm ngoại lệ đại diện cho TOS1.¶ Trong trường hợp của một trận đấu, bật hai mục từ ngăn xếp và đẩy phân nhóm không phù hợp ( >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3 trong trường hợp trận đấu đầy đủ) theo sau là phân nhóm phù hợp. Khi không có khớp, bật một mục (loại khớp) và đẩy >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3. Prep_reraise_star¶(delta)¶ Kết hợp danh sách ngoại lệ được nâng lên và reraised từ TOS, thành một nhóm ngoại lệ để tuyên truyền từ một khối Ext-Except*. Sử dụng nhóm ngoại lệ ban đầu từ TOS1 để xây dựng lại cấu trúc của các ngoại lệ được reraised. Bật hai mục từ ngăn xếp và đẩy ngoại lệ đến reraise hoặc >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3 nếu có một. Mới trong phiên bản 3.11. Với_except_start¶¶Gọi hàm ở vị trí 4 trên ngăn xếp với các đối số (loại, val, tb) đại diện cho ngoại lệ ở đầu ngăn xếp. Được sử dụng để thực hiện cuộc gọi def myfunc(alist): return len(alist)21 khi một ngoại lệ đã xảy ra trong câu lệnh def myfunc(alist): return len(alist)22. Mới trong phiên bản 3.9. Đã thay đổi trong phiên bản 3.11: Hàmdef myfunc(alist): return len(alist)23 ở vị trí 4 của ngăn xếp thay vì 7. Biểu diễn ngoại lệ trên ngăn xếp hiện bao gồm một, không phải ba, các mục.¶ Load_asserter_error¶ Mới trong phiên bản 3.9. Đã thay đổi trong phiên bản 3.11: Hàmdef myfunc(alist): return len(alist)23 ở vị trí 4 của ngăn xếp thay vì 7. Biểu diễn ngoại lệ trên ngăn xếp hiện bao gồm một, không phải ba, các mục.¶ Load_asserter_error¶ Mới trong phiên bản 3.9. Đã thay đổi trong phiên bản 3.11: Hàmdef myfunc(alist): return len(alist)23 ở vị trí 4 của ngăn xếp thay vì 7. Biểu diễn ngoại lệ trên ngăn xếp hiện bao gồm một, không phải ba, các mục.¶ Load_asserter_error¶ Mới trong phiên bản 3.9. Đã thay đổi trong phiên bản 3.11: Hàm >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6) or failure ( EXTENDED_ARG 6). Load_asserter_error¶(namei)¶Đẩy def myfunc(alist): return len(alist)24 lên ngăn xếp. Được sử dụng bởi tuyên bố def myfunc(alist): return len(alist)25. Load_Build_Class¶¶(namei)¶ Đẩy def myfunc(alist): return len(alist)26 lên ngăn xếp. Sau đó, nó được gọi để xây dựng một lớp. Trước_with (Delta) ¶(count)¶ Opcode này thực hiện một số hoạt động trước khi một khối bắt đầu. Đầu tiên, nó tải def myfunc(alist): return len(alist)27 từ trình quản lý ngữ cảnh và đẩy nó lên ngăn xếp để sử dụng sau này bởi def myfunc(alist): return len(alist)28. Sau đó, def myfunc(alist): return len(alist)29 được gọi. Cuối cùng, kết quả của việc gọi phương thức def myfunc(alist): return len(alist)29 được đẩy lên ngăn xếp. Get_len¶(counts)¶ Đẩy def myfunc(alist): return len(alist)31 lên ngăn xếp. Mới trong phiên bản 3.10. Match_mapping¶(namei)¶Nếu TOS là một ví dụ là def myfunc(alist): return len(alist)32 (hoặc, về mặt kỹ thuật hơn: nếu nó có cờ def myfunc(alist): return len(alist)33 được đặt trong def myfunc(alist): return len(alist)34), hãy đẩy >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6 lên ngăn xếp. Nếu không, đẩy EXTENDED_ARG 6. Match_sesechence¶(namei)¶Nếu TOS là một ví dụ là def myfunc(alist): return len(alist)37 và không phải là một ví dụ là ____ 138/________ 139/________ 140 (hoặc, về mặt kỹ thuật hơn: nếu nó có cờ def myfunc(alist): return len(alist)41 được đặt trong def myfunc(alist): return len(alist)34), hãy đẩy >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6 lên ngăn xếp. Nếu không, đẩy EXTENDED_ARG 6.
Match_Keys¶(namei)¶TOS là một bộ thuật của các phím ánh xạ, và TOS1 là chủ đề phù hợp. Nếu TOS1 chứa tất cả các khóa trong TOS, hãy đẩy def myfunc(alist): return len(alist)45 chứa các giá trị tương ứng. Nếu không, đẩy >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3. Đã thay đổi trong phiên bản 3.11: Trước đây, hướng dẫn này cũng đã thúc đẩy giá trị boolean biểu thị thành công ( >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6) hoặc thất bại ( EXTENDED_ARG 6).(namei)¶Store_name (namei) ¶ Thực hiệndef myfunc(alist): return len(alist)49. namei là chỉ mục tên trong thuộc tính def myfunc(alist): return len(alist)50 của đối tượng mã. Trình biên dịch cố gắng sử dụng def myfunc(alist): return len(alist)51 hoặc def myfunc(alist): return len(alist)52 nếu có thể.(consti)¶ Delete_name (namei) ¶ Thực hiệndef myfunc(alist): return len(alist)53, trong đó namei là chỉ mục thành thuộc tính def myfunc(alist): return len(alist)50 của đối tượng mã.(namei)¶ Unpack_seseNENE (Đếm) ¶ Giải nén TOS vào đếm các giá trị riêng lẻ, được đặt vào ngăn xếp từ phải sang trái.(count)¶Unpack_ex (số đếm) ¶ Thực hiện nhiệm vụ với mục tiêu được đặt tên là: Giải nén một điều đáng tin cậy trong các giá trị riêng lẻ, trong đó tổng số giá trị có thể nhỏ hơn số lượng các mục trong ITEBLE: Một trong những giá trị mới sẽ là danh sách tất cả các mục còn lại.(count)¶Byte thấp của số lượng là số lượng giá trị trước giá trị danh sách, byte cao số lượng số lượng giá trị sau nó. Các giá trị kết quả được đặt vào ngăn xếp từ phải sang trái. Store_attr (namei) ¶(count)¶Thực hiện def myfunc(alist): return len(alist)55, trong đó namei là chỉ mục tên trong def myfunc(alist): return len(alist)50. Build_map (đếm) ¶(count)¶ Đẩy một đối tượng từ điển mới lên ngăn xếp. Pops def myfunc(alist): return len(alist)65 Các mục để từ điển giữ các mục nhập: def myfunc(alist): return len(alist)66. Đã thay đổi trong phiên bản 3.5: Từ điển được tạo từ các mục Stack thay vì tạo một từ điển trống có kích thước trước để giữ các mục đếm.The dictionary is created from stack items instead of creating an empty dictionary pre-sized to hold count items. Build_const_key_map (đếm) ¶(count)¶Phiên bản của def myfunc(alist): return len(alist)67 chuyên về các khóa không đổi. Bật phần tử hàng đầu trên ngăn xếp chứa một bộ khóa, sau đó bắt đầu từ def myfunc(alist): return len(alist)68, bật các giá trị đếm để tạo thành các giá trị trong từ điển được xây dựng. Mới trong phiên bản 3.6. Build_string (đếm) ¶(count)¶Concatenates đếm chuỗi từ ngăn xếp và đẩy chuỗi kết quả vào ngăn xếp. Mới trong phiên bản 3.6. Build_string (đếm) ¶¶Concatenates đếm chuỗi từ ngăn xếp và đẩy chuỗi kết quả vào ngăn xếp. List_to_tuple¶ Bật một danh sách từ ngăn xếp và đẩy một tuple chứa cùng các giá trị.(i)¶Mới trong phiên bản 3.9. List_to_tuple¶ Bật một danh sách từ ngăn xếp và đẩy một tuple chứa cùng các giá trị.(i)¶Mới trong phiên bản 3.9. List_to_tuple¶ Bật một danh sách từ ngăn xếp và đẩy một tuple chứa cùng các giá trị.(i)¶Mới trong phiên bản 3.9. List_to_tuple¶ Bật một danh sách từ ngăn xếp và đẩy một tuple chứa cùng các giá trị.(i)¶Mới trong phiên bản 3.9. List_to_tuple¶ Bật một danh sách từ ngăn xếp và đẩy một tuple chứa cùng các giá trị.(namei)¶Mới trong phiên bản 3.9. List_extend (i) ¶(opname)¶Gọi def myfunc(alist): return len(alist)69. Được sử dụng để xây dựng danh sách. Set_update (i) ¶(invert)¶ Gọi def myfunc(alist): return len(alist)70. Được sử dụng để xây dựng các bộ. List_to_tuple¶ Bật một danh sách từ ngăn xếp và đẩy một tuple chứa cùng các giá trị.(invert)¶Mới trong phiên bản 3.9. List_to_tuple¶ Bật một danh sách từ ngăn xếp và đẩy một tuple chứa cùng các giá trị.(namei)¶Mới trong phiên bản 3.9. List_extend (i) ¶(namei)¶Gọi def myfunc(alist): return len(alist)69. Được sử dụng để xây dựng danh sách. Set_update (i) ¶(delta)¶ Gọi def myfunc(alist): return len(alist)70. Được sử dụng để xây dựng các bộ. Dict_update (i) ¶(delta)¶ Gọi def myfunc(alist): return len(alist)71. Được sử dụng để xây dựng các dicts. Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Dict_merge (i) ¶ Giống nhưdef myfunc(alist): return len(alist)72 nhưng tăng một ngoại lệ cho các khóa trùng lặp.(delta)¶ Load_attr (namei) ¶ Thay thế TOS bằng Compare_op (opname) ¶The oparg is now a relative delta rather than an absolute target. Thực hiện một hoạt động boolean. Tên hoạt động có thể được tìm thấy trongdef myfunc(alist): return len(alist)74.(delta)¶ Is_op (đảo ngược) ¶ Thay thế TOS bằng Compare_op (opname) ¶The oparg is now a relative delta rather than an absolute target. Thực hiện một hoạt động boolean. Tên hoạt động có thể được tìm thấy trongdef myfunc(alist): return len(alist)74.(delta)¶ Is_op (đảo ngược) ¶iterator. Call its def myfunc(alist): return len(alist)90 method. If this yields a new value, push it on the stack (leaving the iterator below it). If the iterator indicates it is exhausted, TOS is popped, and the byte code counter is incremented by delta. Thực hiện so sánh def myfunc(alist): return len(alist)75, hoặc def myfunc(alist): return len(alist)76 nếu def myfunc(alist): return len(alist)77 là 1.(namei)¶ Chứa_op (đảo ngược) ¶ Thực hiện so sánh def myfunc(alist): return len(alist)92 is set, then a def myfunc(alist): return len(alist)93 is pushed to the stack before the global variable. Nhập khẩu_name (Namei) ¶(var_num)¶ Nhập mô -đun def myfunc(alist): return len(alist)62. TOS và TOS1 được xuất hiện và cung cấp các đối số từ và cấp độ của def myfunc(alist): return len(alist)82. Đối tượng mô -đun được đẩy lên ngăn xếp. Không gian tên hiện tại không bị ảnh hưởng: đối với một câu lệnh nhập đúng, một hướng dẫn def myfunc(alist): return len(alist)51 tiếp theo sửa đổi không gian tên. Nhập khẩu_from (Namei) ¶(var_num)¶ Tải thuộc tính def myfunc(alist): return len(alist)62 từ mô -đun được tìm thấy trong TOS. Đối tượng kết quả được đẩy lên ngăn xếp, sau đó được lưu trữ bởi một lệnh def myfunc(alist): return len(alist)51. Jump_forward (Delta) ¶(var_num)¶ Tăng Bộ đếm bytecode của Delta. Jump_backward (delta) ¶(i)¶Giảm bộ đếm bytecode của delta. Kiểm tra ngắt. Mới trong phiên bản 3.11. Load_clocution (i) ¶(i)¶Đẩy một tham chiếu đến ô có trong khe def myfunc(alist): return len(alist)97 của bộ lưu trữ của người dân địa phương nhanh. Tên của biến là def myfunc(alist): return len(alist)99. Lưu ý rằng >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE00 thực sự là bí danh cho >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE01. Nó tồn tại để giữ mã byte dễ đọc hơn một chút. Đã thay đổi trong phiên bản 3.11: def myfunc(alist): return len(alist)97 is no longer offset by the length of >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE03. Tải các ô chứa trong khe def myfunc(alist): return len(alist)97 của bộ lưu trữ của người dân địa phương nhanh. Đẩy một tham chiếu đến đối tượng mà ô chứa trên ngăn xếp. Đã thay đổi trong phiên bản 3.11: def myfunc(alist): return len(alist)97 is no longer offset by the length of >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE03. Load_deref (i) ¶(i)¶ Tải các ô chứa trong khe def myfunc(alist): return len(alist)97 của bộ lưu trữ của người dân địa phương nhanh. Đẩy một tham chiếu đến đối tượng mà ô chứa trên ngăn xếp. Load_classderef (i) ¶ Đã thay đổi trong phiên bản 3.11: def myfunc(alist): return len(alist)97 is no longer offset by the length of >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE03. Load_deref (i) ¶(i)¶ Tải các ô chứa trong khe def myfunc(alist): return len(alist)97 của bộ lưu trữ của người dân địa phương nhanh. Đẩy một tham chiếu đến đối tượng mà ô chứa trên ngăn xếp. Đã thay đổi trong phiên bản 3.11: def myfunc(alist): return len(alist)97 is no longer offset by the length of >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE03. Load_deref (i) ¶(i)¶ Tải các ô chứa trong khe def myfunc(alist): return len(alist)97 của bộ lưu trữ của người dân địa phương nhanh. Đẩy một tham chiếu đến đối tượng mà ô chứa trên ngăn xếp. Load_classderef (i) ¶ Đã thay đổi trong phiên bản 3.11: def myfunc(alist): return len(alist)97 is no longer offset by the length of >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE03. Load_deref (i) ¶(n)¶ Tải các ô chứa trong khe def myfunc(alist): return len(alist)97 của bộ lưu trữ của người dân địa phương nhanh. Đẩy một tham chiếu đến đối tượng mà ô chứa trên ngăn xếp. Mới trong phiên bản 3.11. Load_classderef (i) ¶(argc)¶Giống như >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE07 nhưng trước tiên hãy kiểm tra từ điển của người dân địa phương trước khi tham khảo ý kiến của tế bào. Điều này được sử dụng để tải các biến miễn phí trong các cơ quan lớp.
Làm trống tế bào có trong khe def myfunc(alist): return len(alist)97 của bộ lưu trữ của người dân địa phương nhanh. Được sử dụng bởi tuyên bố >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE14.
or:
Tăng một ngoại lệ bằng cách sử dụng một trong 3 dạng của câu lệnh >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE18, tùy thuộc vào giá trị của Argc: 0: >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE18 (tái phát hành ngoại lệ trước đó) Mới trong phiên bản 3.11. 1:>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE20 (nâng cao thể hiện ngoại lệ hoặc loại tại EXTENDED_ARG 6)(flags)¶2: >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE22 (Tăng phiên bản ngoại lệ hoặc nhập tại def myfunc(alist): return len(alist)68 với >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE24 được đặt thành EXTENDED_ARG 6)Gọi (ARGC) ¶ Gọi một đối tượng có thể gọi với số lượng đối số được chỉ định bởi>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE26, bao gồm các đối số được đặt tên được chỉ định bởi >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE27 trước đó, nếu có. Trên ngăn xếp (theo thứ tự tăng dần), một trong hai:(namei)¶ VÔ GIÁ TRỊ Có thể gọi được Các lập luận vị trí(argc)¶Các đối số được đặt tên Mới trong phiên bản 3.11. Các đối số vị trí còn lại¶>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE26 là tổng số các đối số vị trí và được đặt tên, không bao gồm>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE28 khi không códef myfunc(alist): return len(alist)93. Mới trong phiên bản 3.11. >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE32 bật tất cả các đối số và đối tượng có thể gọi ra khỏi ngăn xếp, gọi đối tượng có thể gọi với các đối số đó và đẩy giá trị trả về được trả về bởi đối tượng có thể gọi được.(i)¶ Call_function_ex (cờ) ¶ Mới trong phiên bản 3.11. Gọi một đối tượng có thể gọi với tập hợp các đối số từ khóa và vị trí. Nếu bit cờ thấp nhất được đặt, phần trên cùng của ngăn xếp chứa một đối tượng ánh xạ chứa các đối số từ khóa bổ sung. Trước khi người gọi được gọi, đối tượng ánh xạ và đối tượng có thể lặp lại, mỗi đối tượng đã được giải nén và nội dung của chúng được chuyển theo từ khóa và đối số vị trí tương ứng.>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE33 bật tất cả các đối số và đối tượng có thể gọi ra khỏi ngăn xếp, gọi đối tượng có thể gọi với các đối số đó và đẩy giá trị trả về được trả về bởi đối tượng có thể gọi được.(flags)¶ Mới trong phiên bản 3.6.
Thay đổi trong phiên bản 3.10: Giá trị cờ >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE50 is a tuple of strings instead of dictionary Build_slice (argc) ¶(argc)¶ Đẩy một đối tượng lát trên ngăn xếp. Argc phải là 2 hoặc 3. Nếu là 2, >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE53 được đẩy; Nếu là 3, >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE54 được đẩy. Xem chức năng tích hợp >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE55 để biết thêm thông tin. Extended_arg (ext) ¶(ext)¶ Tiền tố bất kỳ opcode nào có đối số quá lớn để phù hợp với một byte mặc định. EXT giữ một byte bổ sung hoạt động như các bit cao hơn trong đối số. Đối với mỗi opcode, nhiều nhất là ba tiền tố >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE56 được cho phép, tạo thành một đối số từ hai byte đến bốn byte. Format_value (cờ) ¶(flags)¶ Được sử dụng để thực hiện các chuỗi theo nghĩa đen được định dạng (F-String). Bật một fmt_spec tùy chọn từ ngăn xếp, sau đó là một giá trị cần thiết. Cờ được giải thích như sau:
Định dạng được thực hiện bằng cách sử dụng >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE65. Kết quả được đẩy trên ngăn xếp. Mới trong phiên bản 3.6. Match_Class (đếm) ¶(count)¶TOS là một bộ thuật của tên thuộc tính từ khóa, TOS1 là lớp được khớp với và TOS2 là chủ đề phù hợp. Đếm là số lượng mẫu phụ vị trí. Pop Tos, Tos1 và Tos2. Nếu TOS2 là một thể hiện của TOS1 và có các thuộc tính vị trí và từ khóa theo yêu cầu của Count và Tos, hãy đẩy một bộ các thuộc tính được trích xuất. Nếu không, đẩy >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE3. Mới trong phiên bản 3.10. Đã thay đổi trong phiên bản 3.11: Trước đây, hướng dẫn này cũng đã thúc đẩy giá trị boolean biểu thị thành công ( >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE6) or failure ( EXTENDED_ARG 6).
Tiếp tục (ở đâu) ¶(where)¶
Mới trong phiên bản 3.11. Return_generator¶¶Tạo một trình tạo, coroutine hoặc máy phát Async từ khung hiện tại. Xóa khung hiện tại và trả về trình tạo mới được tạo. Mới trong phiên bản 3.11. Return_generator¶¶Tạo một trình tạo, coroutine hoặc máy phát Async từ khung hiện tại. Xóa khung hiện tại và trả về trình tạo mới được tạo. Mới trong phiên bản 3.11. Return_generator¶¶Tạo một trình tạo, coroutine hoặc máy phát Async từ khung hiện tại. Xóa khung hiện tại và trả về trình tạo mới được tạo. Mới trong phiên bản 3.11. Return_generator¶¶Tạo một trình tạo, coroutine hoặc máy phát Async từ khung hiện tại. Xóa khung hiện tại và trả về trình tạo mới được tạo. GỬI¶Now every instruction has an argument, but opcodes >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE82 ignore it. Before, only opcodes >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE83 had an argument. Gửi >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE 3 đến trình tạo phụ của trình tạo này. Được sử dụng trong các câu lệnh >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE 75 và >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE 77.Async_gen_wrap¶ Gói giá trị trên đầu ngăn xếp trong một>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE81. Được sử dụng để mang lại trong các máy phát không đồng bộ.opname¶ Have_argument¶ Đây không thực sự là một opcode. Nó xác định đường phân chia giữa các opcode mà don don sử dụng đối số của họ và các opcode (tương ứng>>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE82 và >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE83).opmap¶ Đã thay đổi trong phiên bản 3.6: Bây giờ mọi hướng dẫn đều có một đối số, nhưng Opcodes >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE82 bỏ qua nó. Trước đây, chỉ có Opcodes >>> dis.dis(myfunc) 2 0 RESUME 0 3 2 LOAD_GLOBAL 1 (NULL + len) 14 LOAD_FAST 0 (alist) 16 PRECALL 1 20 CALL 1 30 RETURN_VALUE83 có một đối số. Bộ sưu tập Opcodecmp_op¶ Các bộ sưu tập này được cung cấp để tự động hướng dẫn các hướng dẫn Bytecode: dis.opname¶hasconst¶Trình tự tên hoạt động, có thể lập chỉ mục bằng cách sử dụng mã byte. dis.opmap¶hasfree¶Tên lập bản đồ từ điển Tên hoạt động cho byte. dis.cmp_op¶hasname¶Trình tự của tất cả các tên hoạt động so sánh. dis.hasconst¶hasjrel¶Trình tự bytecodes truy cập một hằng số. dis.hasfree¶hasjabs¶Trình tự các mã byte truy cập một biến miễn phí (lưu ý rằng 'miễn phí' trong bối cảnh này đề cập đến các tên trong phạm vi hiện tại được tham chiếu bởi phạm vi bên trong hoặc tên trong phạm vi bên ngoài được tham chiếu từ phạm vi này. Nó không bao gồm các tham chiếu đến toàn cầu hoặc toàn cầu hoặc Phạm vi xây dựng). dis.hasname¶haslocal¶Trình tự bytecodes truy cập một thuộc tính theo tên. dis.hasjrel¶hascompare¶Trình tự các byte có mục tiêu nhảy tương đối. |