Hướng dẫn python show assembly code - mã lắp ráp chương trình python

Mã nguồn: lib/dis.py Lib/dis.py


Mô -đun dis 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 Include/opcode.h và được sử dụng bởi trình biên dịch và trình thông dịch.bytecode by disassembling it. The CPython bytecode which this module takes as an input is defined in the file Include/opcode.h and used by the compiler and the interpreter.

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. 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.

Đã 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.Use 2 bytes for each instruction. Previously the number of bytes varied by instruction.

Đã 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.The argument of jump, exception handling and loop instructions is now the instruction offset rather than the byte offset.

Ví dụ: Cho chức năng myfunc():

def myfunc(alist):
    return len(alist)

Lệnh sau đây có thể được sử dụng để hiển thị việc tháo gỡ myfunc():

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE

(Số 2 2 là một số dòng).

Phân tích mã byte¶

Mới trong phiên bản 3.4.

API phân tích bytecode cho phép các đoạn mã python được gói trong một đối tượng Bytecode cung cấp quyền truy cập dễ dàng vào các chi tiết của mã được biên dịch.

Lớp ________ 8 ________ 9 (x, *, first_line = none, current_offset = none) ¶(x, *, first_line=None, current_offset=None)

Phân tích mã byte tương ứng với một hàm, 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ã (được trả về bởi

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
0).

Đâ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 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
1, khi lặp lại một trường hợp Bytecode mang lại các hoạt động của mã byte như các trường hợp
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
3.

Nếu First_line không phải là

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
4, 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 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
4, 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 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
6 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.

ClassMethod ________ 17 (TB) ¶(tb)

Xây dựng một thể hiện Bytecode từ TraceBack đã cho, đặt current_offset thành lệnh chịu trách nhiệm cho ngoại lệ.

________ 19¶

Đối tượng mã được biên dịch.

________ 20¶

Dòng nguồn đầu tiên của đối tượng mã (nếu có)

________ 21 ()()

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)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
2, nhưng được trả về dưới dạng chuỗi nhiều dòng).

________ 23 ()()

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)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
4.

Đã 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.

Example:

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE

Chức năng phân tích

Mô -đun dis cũng xác định các hàm phân tích sau đây chuyển đổi đầu vào trực tiếp sang đầ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:

________ 8 ________ 27 (x)(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.

Chức năng phân tích(x, *, file=None)

Mô -đun dis cũng xác định các hàm phân tích sau đây chuyển đổi đầu vào trực tiếp sang đầ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:

________ 8 ________ 27 (x)

Mới trong phiên bản 3.2.

________ 8 ________ 29 (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 dis0 nếu không được chỉ định).(x=None, *, file=None, depth=None)

Đây là một tốc ký thuận tiện cho dis1, dành cho khám phá tương tác tại dấu nhắc phiên dịch.

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 dis0 nếu không.

Độ sâu tối đa của đệ quy bị giới hạn bởi độ sâu trừ khi nó là

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
4. dis7 có nghĩa là không đệ quy.

Đã 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.7: Thực hiện phân tách đệ quy và thêm tham số độ sâu.Implemented recursive disassembling and added depth parameter.

Đã 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.

________ 8 ________ 39 (tb = none, *, file = none) ¶(tb=None, *, file=None)

Tháo rời chức năng hàng đầu của một dấu vết, sử dụng dấu vết cuối cùng nếu không có ai được thông qua. Hướng dẫn gây ra ngoại lệ được chỉ định.

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 dis0 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.7: Thực hiện phân tách đệ quy và thêm tham số độ sâu.(code, lasti=- 1, *, file=None)dis.Include/opcode.h4(code, lasti=- 1, *, file=None)

Đã 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ộ.

  1. ________ 8 ________ 39 (tb = none, *, file = none) ¶

  2. Tháo rời chức năng hàng đầu của một dấu vết, sử dụng dấu vết cuối cùng nếu không có ai được thông qua. Hướng dẫn gây ra ngoại lệ được chỉ định.

  3. ________ 8 ________ 42 (mã, lasti =- 1, *, file = none)

  4. 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:

  5. số dòng, cho hướng dẫn đầu tiên của mỗi dòng

  6. Hướng dẫn hiện tại, được chỉ định là Include/opcode.h5,

  7. một hướng dẫn được dán nhãn, được chỉ định bằng Include/opcode.h6,

địa chỉ của hướng dẫn,

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 dis0 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.7: Thực hiện phân tách đệ quy và thêm tham số độ sâu.(x, *, first_line=None)

Đã 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ộ.

________ 8 ________ 39 (tb = none, *, file = none) ¶

Tháo rời chức năng hàng đầu của một dấu vết, sử dụng dấu vết cuối cùng nếu không có ai được thông qua. Hướng dẫn gây ra ngoại lệ được chỉ định.

________ 8 ________ 42 (mã, lasti =- 1, *, file = none)

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:(code)

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à Include/opcode.h5,Line numbers can be decreasing. Before, they were always increasing.

một hướng dẫn được dán nhãn, được chỉ định bằng Include/opcode.h6,The PEP 626 myfunc()4 method is used instead of the myfunc()7 and myfunc()8 attributes of the code object.

địa chỉ của hướng dẫn,(code)

Tên mã hoạt động,

tham số hoạt động và(opcode, oparg=None, *, jump=None)

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ử.

________ 8 ________ 42 (mã, lasti =- 1, *, file = none)

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:Added jump parameter.

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à Include/opcode.h5,

một hướng dẫn được dán nhãn, được chỉ định bằng Include/opcode.h6,

địa chỉ của hướng dẫn,

Tên mã hoạt động,

tham số hoạt động vàOpcode collections.

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ử.

________ 8 ________ 49 (x, *, first_line = none) ¶

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 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
3 được đặt tên là 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 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
4, 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.

Mới trong phiên bản 3.4.

________ 8 ________ 53 (Mã)

Hàm trình tạo này sử dụng phương thức myfunc()4 của mã đối tượng mã để tìm các độ lệch là bắt đầu của các dòng trong mã nguồn. Chúng được tạo ra dưới dạng các cặp myfunc()5.

Thay đổi trong phiên bản 3.6: Số dòng có thể giảm. Trước đây, họ luôn luôn tăng lên.

Đã thay đổi trong phiên bản 3.10: Phương thức PEP 626 myfunc()4 được sử dụng thay vì các thuộc tính myfunc()7 và myfunc()8 của đối tượng mã.

________ 8 ________ 60 (Mã)

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.

________ 8 ________ 62 (opcode, oparg = none, *, jump = none) ¶

________ 8 ________ 42 (mã, lasti =- 1, *, file = none)

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à Include/opcode.h5,

một hướng dẫn được dán nhãn, được chỉ định bằng Include/opcode.h6,

địa chỉ của hướng dẫn,

Tên mã hoạt động,

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ử.

________ 8 ________ 49 (x, *, first_line = none) ¶

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 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
3 được đặt tên là 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 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
4, 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.

Mới trong phiên bản 3.4.

________ 8 ________ 53 (Mã)

Hàm trình tạo này sử dụng phương thức myfunc()4 của mã đối tượng mã để tìm các độ lệch là bắt đầu của các dòng trong mã nguồn. Chúng được tạo ra dưới dạng các cặp myfunc()5.

Thay đổi trong phiên bản 3.6: Số dòng có thể giảm. Trước đây, họ luôn luôn tăng lên.

Đã thay đổi trong phiên bản 3.10: Phương thức PEP 626 myfunc()4 được sử dụng thay vì các thuộc tính myfunc()7 và myfunc()8 của đối tượng mã.

Mới trong phiên bản 3.2.

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.

________ 91¶

Thực hiện Bytecode2.

________ 93¶

Thực hiện Bytecode4.

________ 95¶

Thực hiện Bytecode6.

________ 97¶

Thực hiện Bytecode8.

________ 99¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
00.

________ 101¶

Nếu

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
02 là một trình lặp máy phát điện hoặc đối tượng coroutine thì nó còn lại như vậy. Nếu không, thực hiện
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
00.generator iterator or coroutine object it is left as is. Otherwise, implements
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
00.

Mới trong phiên bản 3.5.

Hoạt động nhị phân

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.

________ 104¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
05.

________ 106¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
07.

________ 108¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
09.

Mới trong phiên bản 3.5.

Hoạt động nhị phân

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.

________ 104¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
05.

________ 106¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
07.

________ 108¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
09.

________ 110¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
11.

________ 112¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
13.

________ 114¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
15.

________ 116¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
17.

________ 118¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
19.

________ 120¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
21.

________ 122¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
23.

________ 124¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
25.

________ 126¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
27.

________ 128¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
29.

________ 130¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
31.

Mới trong phiên bản 3.5.

Hoạt động nhị phân

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.

________ 104¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
05.

________ 106¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
07.

________ 108¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
09.

________ 110¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
11.

________ 112¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
13.

________ 114¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
15.

________ 116¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
17.

________ 118¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
19.

________ 120¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
21.

________ 122¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
23.

________ 124¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
25.

________ 126¶

Thực hiện
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
27.

________ 128¶

Mới trong phiên bản 3.5.

Hoạt động nhị phân

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.

Mới trong phiên bản 3.5.

Hoạt động nhị phânReturning awaitable objects from

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
70 is no longer supported.

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.

________ 104¶

Mới trong phiên bản 3.5.

Hoạt động nhị phân

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.

________ 104¶

Thực hiện
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
05.

________ 106¶

Mới trong phiên bản 3.5.

Hoạt động nhị phân

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.

Mới trong phiên bản 3.5.

Hoạt động nhị phân

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.

________ 104¶

Thực hiện
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
05.(i)

________ 106¶

Thực hiện
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
07.(i)

________ 108¶

Thực hiện
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
09.(i)

________ 110¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
11.

________ 112¶Map value is TOS and map key is TOS1. Before, those were reversed.

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
13.

________ 114¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
15.

________ 116¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
17.generator.

________ 118¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
19.generator.

________ 120¶

Thực hiện
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
21.

________ 122¶variable annotations statically.

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
23.

________ 124¶

Thực hiện

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
25.

________ 205¶

Loại bỏ một khối khỏi ngăn xếp khối. Mỗi khung hình, có một chồng các khối, biểu thị các câu lệnh

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
06, và như vậy.

________ 207¶

Loại bỏ một khối khỏi ngăn xếp khối. Khối popped phải là một khối xử lý ngoại lệ, như được tạo ngầm khi vào một trình xử lý ngoại trừ. Ngoài việc bật các giá trị ngoại lai từ ngăn xếp khung, ba giá trị pop được sử dụng cuối cùng được sử dụng để khôi phục trạng thái ngoại lệ.

________ 208¶

Tái tạo lại ngoại lệ hiện đang đứng đầu ngăn xếp. Nếu Oparg không khác, hãy khôi phục

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
09 của khung hiện tại về giá trị của nó khi ngoại lệ được nâng lên.

Mới trong phiên bản 3.9.

________ 210¶

Gọi hàm ở vị trí 7 trên ngăn xếp với ba mục hàng đầu trên ngăn xếp làm đối số. Được sử dụng để thực hiện cuộc gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
11 khi một ngoại lệ đã xảy ra trong câu lệnh
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
12.

Mới trong phiên bản 3.9.

________ 210¶

Gọi hàm ở vị trí 7 trên ngăn xếp với ba mục hàng đầu trên ngăn xếp làm đối số. Được sử dụng để thực hiện cuộc gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
11 khi một ngoại lệ đã xảy ra trong câu lệnh
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
12.

Mới trong phiên bản 3.9.

________ 210¶

Gọi hàm ở vị trí 7 trên ngăn xếp với ba mục hàng đầu trên ngăn xếp làm đối số. Được sử dụng để thực hiện cuộc gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
11 khi một ngoại lệ đã xảy ra trong câu lệnh
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
12.

________ 213¶(delta)

Đẩy

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
14 lên ngăn xếp. Được sử dụng bởi tuyên bố
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
15.

________ 216¶

Đẩy
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
17 lên ngăn xếp. Sau đó, nó được gọi bởi
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
18 để xây dựng một lớp.

________ 219 (Delta) ¶

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

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
20 từ trình quản lý bối cảnh và đẩy nó lên ngăn xếp để sử dụng sau này bởi
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
21. Sau đó,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được gọi, và một khối cuối cùng chỉ vào Delta được đẩy. Cuối cùng, kết quả của việc gọi phương thức
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được đẩy lên ngăn xếp. Opcode tiếp theo sẽ bỏ qua nó (
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
85) hoặc lưu trữ nó trong (a) biến (s) (
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
26 hoặc
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
27).

Mới trong phiên bản 3.2.

________ 228¶

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

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
20 từ trình quản lý bối cảnh và đẩy nó lên ngăn xếp để sử dụng sau này bởi
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
21. Sau đó,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được gọi, và một khối cuối cùng chỉ vào Delta được đẩy. Cuối cùng, kết quả của việc gọi phương thức
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được đẩy lên ngăn xếp. Opcode tiếp theo sẽ bỏ qua nó (
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
85) hoặc lưu trữ nó trong (a) biến (s) (
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
26 hoặc
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
27).

Mới trong phiên bản 3.2.

________ 228¶

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

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
20 từ trình quản lý bối cảnh và đẩy nó lên ngăn xếp để sử dụng sau này bởi
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
21. Sau đó,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được gọi, và một khối cuối cùng chỉ vào Delta được đẩy. Cuối cùng, kết quả của việc gọi phương thức
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được đẩy lên ngăn xếp. Opcode tiếp theo sẽ bỏ qua nó (
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
85) hoặc lưu trữ nó trong (a) biến (s) (
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
26 hoặc
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
27).

Mới trong phiên bản 3.2.

________ 228¶

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

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
20 từ trình quản lý bối cảnh và đẩy nó lên ngăn xếp để sử dụng sau này bởi
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
21. Sau đó,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được gọi, và một khối cuối cùng chỉ vào Delta được đẩy. Cuối cùng, kết quả của việc gọi phương thức
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được đẩy lên ngăn xếp. Opcode tiếp theo sẽ bỏ qua nó (
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
85) hoặc lưu trữ nó trong (a) biến (s) (
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
26 hoặc
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
27).

Mới trong phiên bản 3.2.

________ 228¶

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

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
20 từ trình quản lý bối cảnh và đẩy nó lên ngăn xếp để sử dụng sau này bởi
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
21. Sau đó,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được gọi, và một khối cuối cùng chỉ vào Delta được đẩy. Cuối cùng, kết quả của việc gọi phương thức
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
22 được đẩy lên ngăn xếp. Opcode tiếp theo sẽ bỏ qua nó (
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
85) hoặc lưu trữ nó trong (a) biến (s) (
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25,
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
26 hoặc
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
27).

Mới trong phiên bản 3.2.

________ 228¶(namei)

TOS là một bộ thuật của các phím ánh xạ, và TOS1 là chủ đề phù hợp. Thay thế TOS bằng một

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
01 được hình thành từ các mục của TOS1, nhưng không có bất kỳ khóa nào trong TOS.

Mới trong phiên bản 3.10.(namei)

________ 230¶

Đẩy
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
31 lên ngăn xếp.(count)

________ 232¶

Nếu TOS là một ví dụ là
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
33 (hoặc, về mặt kỹ thuật hơn: nếu nó có cờ ____234 được đặt trong
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
35), hãy đẩy myfunc()3 lên ngăn xếp. Nếu không, đẩy myfunc()5.(counts)

________ 238¶

Nếu TOS là một ví dụ là

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
39 và không phải là một ví dụ là ____ ____ 240/________ 241/________ 242 (hoặc, về mặt kỹ thuật hơn: nếu nó có cờ
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
43 được đặt trong
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
35), hãy đẩy myfunc()3 lên ngăn xếp. Nếu không, đẩy myfunc()5.

________ 247¶(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

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
48 chứa các giá trị tương ứng, theo sau là myfunc()3. Nếu không, đẩy
>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              2 LOAD_FAST                0 (alist)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
4, tiếp theo là myfunc()5.

Tất cả các opcodes sau đây sử dụng các đối số của họ.(namei)

________ 252 (Namei) ¶

Thực hiện
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
53. namei là chỉ mục tên trong thuộc tính
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
54 của đối tượng mã. Trình biên dịch cố gắng sử dụng
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25 hoặc
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
56 nếu có thể.(namei)

________ 257 (Namei) ¶

Thực hiện
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
58, trong đó namei là chỉ mục thành thuộc tính
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
54 của đối tượng mã.(namei)

________ 260 (đế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.(consti)

________ 261 (đế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.(namei)

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.

________ 262 (Namei) ¶(count)

Thực hiện

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
63, trong đó namei là chỉ mục tên trong
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
54.

________ 265 (Namei) ¶(count)

Thực hiện

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
66, sử dụng namei làm chỉ mục thành
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
54.

________ 268 (Namei) ¶(count)

Hoạt động như

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
26, nhưng lưu trữ tên như một toàn cầu.

________ 270 (Namei) ¶(count)

Hoạt động như

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
71, nhưng xóa một tên toàn cầu.

________ 272 (consti) ¶The dictionary is created from stack items instead of creating an empty dictionary pre-sized to hold count items.

Đẩy
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
73 lên ngăn xếp.(count)

________ 274 (Namei) ¶

Mới trong phiên bản 3.6.

________ 287 (đế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.

________ 288¶

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ị.

Mới trong phiên bản 3.9.

________ 289 (i)(i)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

Mới trong phiên bản 3.9.

________ 289 (i)(i)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

Mới trong phiên bản 3.9.

________ 289 (i)(i)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

Mới trong phiên bản 3.9.

________ 289 (i)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

Mới trong phiên bản 3.9.

________ 289 (i)(namei)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

________ 291 (i)(opname)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
92. Được sử dụng để xây dựng các bộ.

________ 293 (i)(invert)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
94. Được sử dụng để xây dựng các dicts.

Mới trong phiên bản 3.9.

________ 289 (i)(invert)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

Mới trong phiên bản 3.9.

________ 289 (i)(namei)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

________ 291 (i)(namei)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
92. Được sử dụng để xây dựng các bộ.

________ 293 (i)(delta)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
94. Được sử dụng để xây dựng các dicts.

________ 295¶(target)

Giống như

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
96 nhưng tăng một ngoại lệ cho các khóa trùng lặp.

________ 297 (Namei) ¶

Thay thế TOS bằng
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
98.(target)

________ 299 (opname) ¶

________ 297 (Namei) ¶

Thay thế TOS bằng
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
98.(target)

________ 299 (opname) ¶

Mới trong phiên bản 3.9.

________ 289 (i)(target)

Gọi

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
90. Được sử dụng để xây dựng danh sách.

________ 297 (Namei) ¶

Thay thế TOS bằng
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
98.(target)

________ 299 (opname) ¶

________ 297 (Namei) ¶

Thay thế TOS bằng
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
98.(target)

________ 299 (opname) ¶

Thực hiện một hoạt động boolean. Tên hoạt động có thể được tìm thấy trong dis00.(delta)

________ 301 (Đảo ngược) ¶iterator. Call its dis24 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 dis02, hoặc dis03 nếu dis04 là 1.(namei)

________ 305 (Đảo ngược) ¶

Thực hiện so sánh dis06, hoặc dis07 nếu dis04 là 1.(delta)

________ 309 (Namei) ¶

Nhập mô -đun
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
75. TOS và TOS1 được xuất hiện và cung cấp các đối số từ và cấp độ của dis11. Đố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 tuyên bố nhập thích hợp, hướng dẫn
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25 tiếp theo sửa đổi không gian tên.(var_num)

________ 313 (Namei) ¶

Tải thuộc tính
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
75 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 hướng dẫn
>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
25.(var_num)

________ 316 (Delta) ¶

Tăng Bộ đếm bytecode của Delta.(var_num)

________ 317 (mục tiêu) ¶

Nếu TOS là đúng, hãy đặt bộ đếm bytecode thành Target. Tos được bật lên.(i)

Mới trong phiên bản 3.1.

________ 318 (mục tiêu) ¶(i)

Nếu TOS là sai, hãy đặt bộ đếm bytecode thành mục tiêu. Tos được bật lên.

________ 319 (mục tiêu) ¶(i)

Kiểm tra xem giá trị thứ hai trên ngăn xếp có phải là một ngoại lệ phù hợp với TOS hay không và nhảy nếu không. Bật hai giá trị từ ngăn xếp.

________ 320 (mục tiêu) ¶

Nếu TOS là đúng, hãy đặt bộ đếm bytecode thành mục tiêu và để các TOS trên ngăn xếp. Mặt khác (TOS là sai), TOS được bật lên.(i)

________ 321 (mục tiêu) ¶

Nếu TOS là sai, hãy đặt bộ đếm bytecode thành mục tiêu và để các TOS trên ngăn xếp. Mặt khác (TOS là đúng), TOS được bật lên.(i)

________ 322 (mục tiêu) ¶

Đặt bộ đếm bytecode thành Target.

________ 323 (Delta) ¶(argc)

TOS là một người lặp. Gọi phương thức dis24 của nó. Nếu điều này mang lại một giá trị mới, hãy đẩy nó lên ngăn xếp (để lại bộ lặp bên dưới nó). Nếu bộ lặp cho biết nó đã cạn kiệt, TOS được bật và bộ đếm mã byte được tăng lên bởi Delta.

  • ________ 325 (Namei) ¶

  • Tải toàn cầu có tên

    >>> bytecode = dis.Bytecode(myfunc)
    >>> for instr in bytecode:
    ...     print(instr.opname)
    ...
    LOAD_GLOBAL
    LOAD_FAST
    CALL_FUNCTION
    RETURN_VALUE
    
    75 lên ngăn xếp.

  • ________ 327 (Delta) ¶

Đẩy một khối thử từ một điều khoản thử nghiệm hoặc thử nghiệm thử nghiệm vào ngăn xếp khối. Delta trỏ đến khối cuối cùng hoặc khối đầu tiên ngoại trừ.(argc)

________ 328 (var_num) ¶

Đẩy một tham chiếu đến dis29 cục bộ lên ngăn xếp.This opcode is used only for calls with positional arguments.

________ 354 (ARGC) ¶(argc)

Gọi một đối tượng có thể gọi với các đối số vị trí (nếu có) và từ khóa. ARGC chỉ ra tổng số đối số vị trí và từ khóa. Phần tử hàng đầu trên ngăn xếp chứa một tuple với tên của các đối số từ khóa, phải là chuỗi. Dưới đây là các giá trị cho các đối số từ khóa, theo thứ tự tương ứng với tuple. Dưới đây là các đối số vị trí, với tham số bên phải trên cùng. Bên dưới các đối số là một đối tượng có thể gọi được để gọi. dis55 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.

Thay đổi trong phiên bản 3.6: Các đối số từ khóa được đóng gói trong một bộ thuật thay vì từ điển, ARGC cho biết tổng số đối số.Keyword arguments are packed in a tuple instead of a dictionary, argc indicates the total number of arguments.

________ 356 (cờ) ¶(flags)

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. dis57 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.

Mới trong phiên bản 3.6.

________ 358 (Namei) ¶(namei)

Tải một phương thức có tên

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
75 từ đối tượng TOS. Tos được bật lên. Mã byte này phân biệt hai trường hợp: nếu TOS có một phương thức có tên chính xác, mã byte đẩy phương thức không liên kết và TOS. TOS sẽ được sử dụng làm đối số đầu tiên (dis60) bằng dis61 khi gọi phương thức không liên kết. Mặt khác, dis62 và đối tượng Trả về bằng cách tra cứu thuộc tính được đẩy.

Mới trong phiên bản 3.7.

________ 363 (ARGC) ¶(argc)

Gọi một phương thức. Argc là số lượng đối số vị trí. Đối số từ khóa không được hỗ trợ. Opcode này được thiết kế để sử dụng với dis64. Đối số vị trí nằm trên đầu ngăn xếp. Bên dưới chúng, hai mục được mô tả trong dis64 nằm trên ngăn xếp (dis60 và một đối tượng phương thức không liên kết hoặc dis62 và có thể gọi được tùy ý). Tất cả chúng được bật lên và giá trị trả lại được đẩy.

Mới trong phiên bản 3.7.

________ 363 (ARGC) ¶(flags)

Gọi một phương thức. Argc là số lượng đối số vị trí. Đối số từ khóa không được hỗ trợ. Opcode này được thiết kế để sử dụng với dis64. Đối số vị trí nằm trên đầu ngăn xếp. Bên dưới chúng, hai mục được mô tả trong dis64 nằm trên ngăn xếp (dis60 và một đối tượng phương thức không liên kết hoặc dis62 và có thể gọi được tùy ý). Tất cả chúng được bật lên và giá trị trả lại được đẩy.

  • ________ 368 (cờ) ¶

  • Đẩy một đối tượng chức năng mới trên ngăn xếp. Từ dưới lên trên, ngăn xếp được tiêu thụ phải bao gồm các giá trị nếu đối số mang giá trị cờ được chỉ định

  • dis69 Một bộ giá trị mặc định cho các tham số chỉ định vị và vị trí theo thứ tự vị trí theo thứ tự vị trí

  • dis70 Một từ điển của các tham số chỉ từ khóa Giá trị mặc định

  • dis71 Một bộ chuỗi chứa các tham số Chú thích

  • dis72 Một tuple chứa các ô cho các biến miễn phí, đóng cửaqualified name of the function (at TOS)

Mã liên quan đến hàm (tại TOS1)Flag value dis71 is a tuple of strings instead of dictionary

Tên đủ điều kiện của hàm (tại TOS)(argc)

Thay đổi trong phiên bản 3.10: Giá trị cờ dis71 là một bộ chuỗi thay vì từ điển

________ 374 (ARGC) ¶(ext)

Đẩ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, dis75 được đẩy; Nếu là 3, dis76 được đẩy. Xem chức năng tích hợp dis77 để biết thêm thông tin.

________ 378 (ext)(flags)

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ố dis79 được cho phép, tạo thành một đối số từ hai byte đến bốn byte.

  • ________ 380 (cờ) ¶

  • Đượ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:

  • dis81: Giá trị được định dạng AS-IS.

  • dis82: Gọi dis83 về giá trị trước khi định dạng nó.

  • dis84: Gọi dis85 trên giá trị trước khi định dạng nó.

dis86: Gọi dis87 về giá trị trước khi định dạng nó.

Mới trong phiên bản 3.6.

________ 358 (Namei) ¶(count)

Tải một phương thức có tên

>>> bytecode = dis.Bytecode(myfunc)
>>> for instr in bytecode:
...     print(instr.opname)
...
LOAD_GLOBAL
LOAD_FAST
CALL_FUNCTION
RETURN_VALUE
75 từ đối tượng TOS. Tos được bật lên. Mã byte này phân biệt hai trường hợp: nếu TOS có một phương thức có tên chính xác, mã byte đẩy phương thức không liên kết và TOS. TOS sẽ được sử dụng làm đối số đầu tiên (dis60) bằng dis61 khi gọi phương thức không liên kết. Mặt khác, dis62 và đối tượng Trả về bằng cách tra cứu thuộc tính được đẩy.

Mới trong phiên bản 3.7.

________ 363 (ARGC) ¶

Gọi một phương thức. Argc là số lượng đối số vị trí. Đối số từ khóa không được hỗ trợ. Opcode này được thiết kế để sử dụng với dis64. Đối số vị trí nằm trên đầu ngăn xếp. Bên dưới chúng, hai mục được mô tả trong dis64 nằm trên ngăn xếp (dis60 và một đối tượng phương thức không liên kết hoặc dis62 và có thể gọi được tùy ý). Tất cả chúng được bật lên và giá trị trả lại được đẩy.(kind)

________ 368 (cờ) ¶

Mới trong phiên bản 3.10.

________ 395 (đếm)(count)

Nâng các mục xếp hàng trên cùng một vị trí lên và di chuyển TOS xuống số lượng vị trí.

Mới trong phiên bản 3.10.

________ 396¶

Đây không thực sự là một opcode. Nó xác định ranh giới phân chia giữa các opcode mà don don sử dụng đối số của họ và các opcode lần lượt (dis97 và dis98).

Đã 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 dis97 bỏ qua nó. Trước đây, chỉ có Opcodes dis98 có một đối số.Now every instruction has an argument, but opcodes dis97 ignore it. Before, only opcodes dis98 had an argument.

Bộ sưu tập Opcode

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:

________ 8 ________ 73¶

Trình tự tên hoạt động, có thể lập chỉ mục bằng cách sử dụng mã byte.

________ 8 ________ 404¶

Tên lập bản đồ từ điển Tên hoạt động cho byte.

________ 8 ________ 406¶

Trình tự của tất cả các tên hoạt động so sánh.

________ 8 ________ 408¶

Trình tự bytecodes truy cập một hằng số.

________ 8 ________ 410¶

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).

________ 8 ________ 412¶

Trình tự bytecodes truy cập một thuộc tính theo tên.

________ 8 ________ 414¶

Trình tự các byte có mục tiêu nhảy tương đối.

________ 8 ________ 416¶

Trình tự các byte có mục tiêu nhảy tuyệt đối.

________ 8 ________ 418¶

Trình tự bytecodes truy cập một biến cục bộ.

________ 8 ________ 420¶

Trình tự byte của các hoạt động boolean.