mirror of
https://github.com/python/cpython
synced 2024-09-19 15:21:30 +00:00
GH-93429: Document LOAD_METHOD
removal (GH-93803)
This commit is contained in:
parent
a338e106b6
commit
38a7f787d8
|
@ -887,7 +887,20 @@ iterations of the loop.
|
|||
|
||||
.. opcode:: LOAD_ATTR (namei)
|
||||
|
||||
Replaces TOS with ``getattr(TOS, co_names[namei])``.
|
||||
If the low bit of ``namei`` is not set, this replaces TOS with
|
||||
``getattr(TOS, co_names[namei>>1])``.
|
||||
|
||||
If the low bit of ``namei`` is set, this will attempt to load a method named
|
||||
``co_names[namei>>1]`` from the TOS object. TOS is popped.
|
||||
This bytecode distinguishes two cases: if TOS has a method with the correct
|
||||
name, the bytecode pushes the unbound method and TOS. TOS will be used as
|
||||
the first argument (``self``) by :opcode:`CALL` when calling the
|
||||
unbound method. Otherwise, ``NULL`` and the object return by the attribute
|
||||
lookup are pushed.
|
||||
|
||||
.. versionchanged:: 3.11
|
||||
If the low bit of ``namei`` is set, then a ``NULL`` or ``self`` is
|
||||
pushed to the stack before the attribute or unbound method respectively.
|
||||
|
||||
|
||||
.. opcode:: COMPARE_OP (opname)
|
||||
|
@ -1189,18 +1202,6 @@ iterations of the loop.
|
|||
.. versionadded:: 3.6
|
||||
|
||||
|
||||
.. opcode:: LOAD_METHOD (namei)
|
||||
|
||||
Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped.
|
||||
This bytecode distinguishes two cases: if TOS has a method with the correct
|
||||
name, the bytecode pushes the unbound method and TOS. TOS will be used as
|
||||
the first argument (``self``) by :opcode:`CALL` when calling the
|
||||
unbound method. Otherwise, ``NULL`` and the object return by the attribute
|
||||
lookup are pushed.
|
||||
|
||||
.. versionadded:: 3.7
|
||||
|
||||
|
||||
.. opcode:: PUSH_NULL
|
||||
|
||||
Pushes a ``NULL`` to the stack.
|
||||
|
|
|
@ -106,6 +106,15 @@ Optimizations
|
|||
(Contributed by Inada Naoki in :gh:`92536`.)
|
||||
|
||||
|
||||
CPython bytecode changes
|
||||
========================
|
||||
|
||||
* Removed the :opcode:`LOAD_METHOD` instruction. It has been merged into
|
||||
:opcode:`LOAD_ATTR`. :opcode:`LOAD_ATTR` will now behave like the old
|
||||
:opcode:`LOAD_METHOD` instruction if the low bit of its oparg is set.
|
||||
(Contributed by Ken Jin in :gh:`93429`.)
|
||||
|
||||
|
||||
Deprecated
|
||||
==========
|
||||
|
||||
|
|
Loading…
Reference in a new issue